The exit routine may not invoke functions or suspend execution
which prevents return to the caller for a protracted timeframe. This
includes the use of system services which either explicitly or implicitly
give control back to the system. In this context, protracted would
include durations of one second or longer. When the need for such
activities is required, the exit should use asynchronous techniques.