Causes any interrupts that occur during the execution of a body of code to be queued, in non-SMP LispWorks only.
While body is executing, all interrupts (for example, preemption, keyboard break etc.) are queued. They are executed when body exits.
without-interrupts
is not supported in SMP LispWorks, that is on Microsoft Windows, Mac OS X, Linux, FreeBSD and x86/x64 Solaris platforms.
To ensure that the seconds and milliseconds slots are always consistent in non-SMP LispWorks, you can use without-interrupts
within the function which sets them.
(defstruct elapsed-time
seconds
milliseconds)
(defun update-elapsed-time-atomically
(elapsed-time seconds milliseconds)
(mp:without-interrupts
(setf (elapsed-time-seconds elapsed-time) seconds
(elapsed-time-milliseconds elapsed-time)
milliseconds)))
LispWorks User Guide and Reference Manual - 13 Feb 2015