doc: clarify process on exit safe usage
authorTimothy J Fontaine <tjfontaine@gmail.com>
Tue, 31 Dec 2013 22:48:20 +0000 (14:48 -0800)
committerTimothy J Fontaine <tjfontaine@gmail.com>
Tue, 31 Dec 2013 22:48:20 +0000 (14:48 -0800)
doc/api/process.markdown

index 980254e..b2f43de 100644 (file)
@@ -8,15 +8,17 @@ It is an instance of [EventEmitter][].
 
 ## Event: 'exit'
 
-Emitted when the process is about to exit.  This is a good hook to perform
-constant time checks of the module's state (like for unit tests).  The main
-event loop will no longer be run after the 'exit' callback finishes, so
-timers may not be scheduled.  The callback takes one argument, the code the
-process is exiting with.
+Emitted when the process is about to exit. There is no way to prevent the
+exiting of the event loop at this point, and once all `exit` listeners have
+finished running the process will exit. Therefore you **must** only perform
+**synchronous** operations in this handler. This is a good hook to perform
+checks on the module's state (like for unit tests). The callback takes one
+argument, the code the process is exiting with.
 
 Example of listening for `exit`:
 
     process.on('exit', function(code) {
+      // do *NOT* do this
       setTimeout(function() {
         console.log('This will not run');
       }, 0);