Changes: Added to documents _exit() should be used instead of exit() with every other booster than exec-booster

RevBy: Pertti Kellomaki
pull/1/head
Joona Hakkarainen 15 years ago
parent 5d3ccbdf98
commit a2dd54b668

@ -166,8 +166,26 @@ Check that applauncherd package is installed and applancherd daemon is
running. You can now run your application as usual as
/usr/bin/application_binary, or use the mboosted launching by running:
\code
invoker --type=m /usr/bin/application_binary
\endcode
\_exit() should be used instead of exit() with every other booster than exec-booster
The basic difference between exit() and _exit() is that the former performs clean-up related to user-mode constructs in the library,
and calls user-supplied cleanup-functions, whereas the latter performs only the kernel cleanup for the process.
The function _exit() terminates the calling process "immediately". Any open file descriptors belonging to the process are closed; any children
of the process are inherited by process.
The exit() function causes normal process termination and the value of status is returned to the parent.
a child process should strictly use _exit() instead of a simple exit() or a normal return from main().
The user level initializations of the libraries are done once when the launcher daemon loads the libraries.
The launched applications are child processes of the launcher, and every time exit() is called, the corresponding cleanup actions are executed.
The root problem is that the cleanup actions get done multiple times, and libraries may not be designed to tolerate this.
By calling _exit() in the applications, the problem is avoided.
*/

Loading…
Cancel
Save