5.2 Issues in multitasking

5.2.6 Quitting Lisp

When you exit from a Lisp that is not running multiple processes, Lisp looks at the stack and performs all pending cleanup forms.

When you invokequit from the Multitasking Facility, the scheduler first modifies all processes so that only the initial process can run. It sets the special variable*quitting-lisp* tot to prevent new processes from being created and existing processes from being deactivated. The initial process then activates all living processes and kills them by using the functionkill-process.

The functionkill-process causes each process to unwind its stack and run all the pending cleanup forms. Once all the other processes have died, the initial process then unwinds its own stack and informs the operating system to terminate Lisp.

The Advanced User's Guide - 9 SEP 1996

Generated with Harlequin WebMaker