All Manuals > LispWorks User Guide and Reference Manual > 35 The MP Package

NextPrevUpTopContentsIndex

without-interrupts

Macro
Summary

Causes any interrupts that occur during the execution of a body of code to be queued, in non-SMP LispWorks only.

Package

mp

Signature

without-interrupts &rest body => result

Arguments

body

The forms to execute while interrupts are queued.

Values

result

The result of executing body .

Description

While body is executing, all interrupts (for example, preemption, keyboard break etc.) are queued. They are executed when body exits.

Notes

without-interrupts is not supported in SMP LispWorks, that is on Microsoft Windows, Mac OS X, Linux, FreeBSD and x86/x64 Solaris platforms.

Example

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)))
See also

without-preemption


LispWorks User Guide and Reference Manual - 21 Dec 2011

NextPrevUpTopContentsIndex