Sack Library Documentation

The following table lists functions in this documentation.

call this after a fork(). Otherwise, it will falsely invoke shutdown when it exits. 
Not usually used by user code, but this invokes all the routines which have been scheduled to run for startup. If your compiler doesn't have a method of handling deadstart code, this can be manually called. It can also be called if you loaded a library yourself without using the LoadFunction interface, to invoke startups scheduled in the loaded library. 
This just calls the list of shutdown procedures. This should not be used usually from user code, since internally this is handled by catching atexit() or with a static destructor. 
returns whether MarkRootDeadstartComplete has been called. 
This is typically called after the first InvokeDeadstarts completes. The code that runs this is usually a routine just before main(). So once code in main begins to run, all prior initialization has been performed. 
Used by ATEXIT and PRIORITY_ATEXIT macros to register a shutdown routine at a specific priority. Higher number priorities are scheduled to run before lower number priorities. *backwards from PRELOAD priorities* This registers functions which are run while the program exits if it is at all able to run when exiting. calling exit() or BAG_Exit() will invoke these. 
Used by PRELOAD and PRIORITY_PRELOAD macros to register a startup routine at a specific priority. Lower number priorities are scheduled to run before higher number priorities*backwards from ATEXIT priorities*. Using this scheduling mechanisms, routines which create threads under windows are guaranteed to run before main, and are guaranteed able to create threads. (They are outside of the loader lock) 
Resumes a suspended deadstart. If root deadstart is completed, then ResumeDeadstart will call InvokeDeadstarts after resuming deadstart
This routine is used internally when LoadFunction is called. After MarkDeadstartComplete is called, any call to a RegisterPriorityStartupProc will call the startup routine immediately instead of waiting. This function disables the auto-running of this function, and instead enques the startup to the list of startups. When completed, at some later point, call ResumeDeadstart() to dispatched all scheduled routines, and release the suspend; however, if initial deastart was not dispatched, then ResumeDeadstart does not do the invoke, it only releases the suspend. 
Created with a commercial version of Doc-O-Matic. In order to make this message disappear you need to register this software. If you have problems registering this software please contact us at
Copyright (c) 2000+. All rights reserved.
What do you think about this topic? Send feedback!