Tcl\_CallWhenDeleted(3) Tcl Library Procedures Tcl\_CallWhenDeleted(3)

```

```

# [NAME](#NAME)

Tcl\_CallWhenDeleted, Tcl\_DontCallWhenDeleted - Arrange for callback when interpreter is deleted

# [SYNOPSIS](#SYNOPSIS)

```
#include <tcl.h>

Tcl_CallWhenDeleted(interp, proc, clientData)

Tcl_DontCallWhenDeleted(interp, proc, clientData)
```

# [ARGUMENTS](#ARGUMENTS)

Tcl\_Interp *\*interp* (in)

Interpreter with which to associated callback.

Tcl\_InterpDeleteProc *\*proc* (in)

Procedure to call when *interp* is deleted.

void *\*clientData* (in)

Arbitrary one-word value to pass to *proc*.

```
    
```

# [DESCRIPTION](#DESCRIPTION)

**Tcl\_CallWhenDeleted** arranges for *proc* to be called by **Tcl\_DeleteInterp** if/when *interp* is deleted at some future time. *Proc* will be invoked just before the interpreter is deleted, but the interpreter will still be valid at the time of the call. *Proc* should have arguments and result that match the type **Tcl\_InterpDeleteProc**:

```
typedef void Tcl_InterpDeleteProc(


        void *clientData,


        Tcl_Interp *interp);
```

The *clientData* and *interp* parameters are copies of the *clientData* and *interp* arguments given to **Tcl\_CallWhenDeleted**. Typically, *clientData* points to an application-specific data structure that *proc* uses to perform cleanup when an interpreter is about to go away. *Proc* does not return a value.

**Tcl\_DontCallWhenDeleted** cancels a previous call to **Tcl\_CallWhenDeleted** with the same arguments, so that *proc* will not be called after all when *interp* is deleted. If there is no deletion callback that matches *interp*, *proc*, and *clientData* then the call to **Tcl\_DontCallWhenDeleted** has no effect.

Note that if the callback is being used to delete a resource that *must* be released on exit, **Tcl\_CreateExitHandler** should be used to ensure that a callback is received even if the application terminates without deleting the interpreter.

# [SEE ALSO](#SEE_ALSO)

[Tcl\_CreateExitHandler(3)](/man/os/tcl/Tcl_CreateExitHandler.3), [Tcl\_CreateThreadExitHandler(3)](/man/os/tcl/Tcl_CreateThreadExitHandler.3)

# [KEYWORDS](#KEYWORDS)

callback, cleanup, delete, interpreter

7.0 Tcl

---

Document: Tcl_DontCallWhenDeleted(3) from tcl 9.1.0-r0 (Chainguard OS)
Source: https://downloads.sourceforge.net/project/tcl/Tcl/9.1.0/tcl9.1.0-src.tar.gz
