(defstruct (gate (:constructor %make-gate)
(:copier nil)
(:predicate gatep))
- "GATE type. Gates are syncronization constructs suitable for making
+ "GATE type. Gates are synchronization constructs suitable for making
multiple threads wait for single event before proceeding.
Use WAIT-ON-GATE to wait for a gate to open, OPEN-GATE to open one,
(declare (gate gate))
(let (closed)
(with-mutex ((gate-mutex gate))
- (setf closed (eq :closed (gate-state gate))
- (gate-state gate) :open)
- (condition-broadcast (gate-queue gate)))
+ (sb-sys:without-interrupts
+ (setf closed (eq :closed (gate-state gate))
+ (gate-state gate) :open)
+ (condition-broadcast (gate-queue gate))))
closed))
(defun close-gate (gate)