---
name: "CallDel"
section: "3"
platform: "macos"
package: "tcl"
version: "152"
release: "macOS 26.5"
platforms: ["macos"]
url: "https://new.carta.tech/CallDel"
---

# CallDel(3)

Arrange for callback when interpreter is deleted

## NAME

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

## SYNOPSIS

```
#include <tcl.h>

Tcl_CallWhenDeleted(interp, proc, clientData)

Tcl_DontCallWhenDeleted(interp, proc, clientData)
```

## ARGUMENTS

Interpreter with which to associated callback. Procedure to call when *interp* is deleted. Arbitrary one-word value to pass to *proc*.

## 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(\
         ClientData *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.

## KEYWORDS

callback, delete, interpreter
