blocking interrupts around the cleanups.
The values of
. On exit, whether local or not, the
are executed with interrupts blocked.
In compiled code, the macro is equvalent to
However, in interpreted code the macro is expanded to ensure that the body of
actually happens. If the form above is interpreted the evaluator may throw (if the process is killed, for example) before completing macroexpansion of
and doing the actual blocking.
can block and unblock interrupts using current-process-block-interrupts and current-process-unblock-interrupts. This may be useful if some of the cleanups are essential and others are not.
Blocking interrupts causes the process to not respond to interrupts, including killing. You should make sure that forms which are executed with interrupts blocked do not hang.
LispWorks User Guide and Reference Manual - 22 Dec 2009