Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages

OpenDarwin 7.2.1 - man page for tcl_exitthread (opendarwin section 3)

Tcl_Exit(3)			      Tcl Library Procedures			      Tcl_Exit(3)

_________________________________________________________________________________________________

NAME
       Tcl_Exit,   Tcl_Finalize,  Tcl_CreateExitHandler,  Tcl_DeleteExitHandler,  Tcl_ExitThread,
       Tcl_FinalizeThread, Tcl_CreateThreadExitHandler,  Tcl_DeleteThreadExitHandler  -  end  the
       application or thread (and invoke exit handlers)

SYNOPSIS
       #include <tcl.h>

       Tcl_Exit(status)

       Tcl_Finalize()

       Tcl_CreateExitHandler(proc, clientData)

       Tcl_DeleteExitHandler(proc, clientData)

       Tcl_ExitThread(status)

       Tcl_FinalizeThread()

       Tcl_CreateThreadExitHandler(proc, clientData)

       Tcl_DeleteThreadExitHandler(proc, clientData)

ARGUMENTS
       int	      status	   (in)      Provides  information  about  why the application or
					     thread exited.  Exact meaning may	be  platform-spe-
					     cific.   0  usually means a normal exit, any nonzero
					     value usually means that an error occurred.

       Tcl_ExitProc   *proc	   (in)      Procedure to invoke before exiting application.

       ClientData     clientData   (in)      Arbitrary one-word value to pass to proc.
_________________________________________________________________

DESCRIPTION
       The procedures described here provide a graceful mechanism to end the execution of  a  Tcl
       application.  Exit  handlers  are invoked to cleanup the application's state before ending
       the execution of Tcl code.

       Invoke Tcl_Exit to end a Tcl application and to exit from this process. This procedure  is
       invoked	by  the  exit command, and can be invoked anyplace else to terminate the applica-
       tion.  No-one should ever invoke  the  exit  system  procedure  directly;   always  invoke
       Tcl_Exit  instead,  so  that it can invoke exit handlers.  Note that if other code invokes
       exit system procedure directly, or otherwise causes the application to  terminate  without
       calling Tcl_Exit, the exit handlers will not be run.  Tcl_Exit internally invokes the exit
       system call, thus it never returns control to its caller.

       Tcl_Finalize is similar to Tcl_Exit except that it does not exit from the current process.
       It  is  useful for cleaning up when a process is finished using Tcl but wishes to continue
       executing, and when Tcl is used in a dynamically loaded extension  that	is  about  to  be
       unloaded.  On some systems Tcl is automatically notified when it is being unloaded, and it
       calls Tcl_Finalize internally; on these systems it not necessary for the caller to explic-
       itly  call  Tcl_Finalize.   However, to ensure portability, your code should always invoke
       Tcl_Finalize when Tcl is being unloaded, to ensure that the code will work  on  all  plat-
       forms. Tcl_Finalize can be safely called more than once.

       Tcl_ExitThread  is  used  to  terminate the current thread and invoke per-thread exit han- |
       dlers.  This finalization is done by Tcl_FinalizeThread, which you can call  if	you  just |
       want to clean up per-thread state and invoke the thread exit handlers.  Tcl_Finalize calls |
       Tcl_FinalizeThread for the current thread automatically.

       Tcl_CreateExitHandler arranges for proc	to  be	invoked  by  Tcl_Finalize  and	Tcl_Exit.
       Tcl_CreateThreadExitHandler  arranges  for  proc  to  be invoked by Tcl_FinalizeThread and
       Tcl_ExitThread.	This provides a hook for cleanup operations such as flushing buffers  and
       freeing global memory.  Proc should match the type Tcl_ExitProc:
	      typedef void Tcl_ExitProc(ClientData clientData);
       The clientData parameter to proc is a copy of the clientData argument given to Tcl_Create-
       ExitHandler or Tcl_CreateThreadExitHandler when	the  callback  was  created.   Typically,
       clientData  points  to  a data structure containing application-specific information about
       what to do in proc.

       Tcl_DeleteExitHandler and Tcl_DeleteThreadExitHandler may be called  to	delete	a  previ-
       ously-created  exit  handler.   It removes the handler indicated by proc and clientData so
       that no call to proc will be made.  If no such handler exists  then  Tcl_DeleteExitHandler
       or Tcl_DeleteThreadExitHandler does nothing.

       Tcl_Finalize  and Tcl_Exit execute all registered exit handlers, in reverse order from the |
       order in which they were registered.  This matches the natural order in	which  extensions |
       are  loaded and unloaded; if extension A loads extension B, it usually unloads B before it |
       itself is unloaded.  If extension A registers its exit handlers before  loading	extension |
       B, this ensures that any exit handlers for B will be executed before the exit handlers for |
       A.											  |

       Tcl_Finalize and Tcl_Exit call Tcl_FinalizeThread and the thread exit handlers  after  the |
       process-wide  exit handlers.  This is because thread finalization shuts down the I/O chan- |
       nel system, so any attempt at I/O by the global exit handlers will vanish  into	the  bit- |
       bucket.

KEYWORDS
       callback, cleanup, dynamic loading, end application, exit, unloading, thread

Tcl					       8.1				      Tcl_Exit(3)


All times are GMT -4. The time now is 11:51 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
UNIX.COM Login
Username:
Password:  
Show Password