Tcl_CallWhenDeleted(), Tcl_DontCallWhenDeleted()

Arrange for callback when interpreter is deleted 

Tcl Library Procedures


#include <tcl.h>

Tcl_CallWhenDeleted(interp, proc, clientData)

Tcl_DontCallWhenDeleted(interp, proc, clientData)


Tcl_Interp *interp (in) 

Interpreter with which to associated callback.

Tcl_InterpDeleteProc *proc (in) 

Procedure to call when interp is deleted.

ClientData clientData (in) 

Arbitrary one-word value to pass to proc.


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 won't 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.


Windows 8.1. Windows Server 2012 R2. Windows 10. Windows Server 2016. Windows Server 2019. Windows 11. Windows Server 2022.


PTC MKS Toolkit for Professional Developers
PTC MKS Toolkit for Enterprise Developers
PTC MKS Toolkit for Enterprise Developers 64-Bit Edition

PTC MKS Toolkit 10.4 Documentation Build 39.