Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

Tcl_CallWhenDeleted (3tcl)

Name

Tcl_CallWhenDeleted - Arrange for callback when interpreter is deleted

Synopsis

#include <tcl.h>

Tcl_CallWhenDeleted(interp, proc, clientData)

Tcl_DontCallWhenDeleted(interp, proc, clientData)

Description

Tcl_CallWhenDeleted(3tcl)   Tcl Library Procedures   Tcl_CallWhenDeleted(3tcl)



______________________________________________________________________________

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 per-
       form 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.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | runtime/tcl-8    |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+

SEE ALSO
       Tcl_CreateExitHandler(3), Tcl_CreateThreadExitHandler(3)

KEYWORDS
       callback, cleanup, delete, interpreter



NOTES
       Source code for open source software components in Oracle  Solaris  can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source was downloaded from  http://prdownloads.sourceforge.net/tcl/tcl-
       core8.6.7-src.tar.gz.

       Further information about this software can be found on the open source
       community website at https://www.tcl.tk/.



Tcl                                   7.0            Tcl_CallWhenDeleted(3tcl)