Provided by: tcl8.6-doc_8.6.13+dfsg-2_all bug

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

       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.
_________________________________________________________________________________________________

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.

       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

       Tcl_CreateExitHandler(3tcl), Tcl_CreateThreadExitHandler(3tcl)

KEYWORDS

       callback, cleanup, delete, interpreter