X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-concurrency%2Fgate.lisp;h=b51c37c2df5fbf4690dd8c3ef3b338131ed2f1dd;hb=f057566fe993f008a9b34dc87b026e7c8ef2611d;hp=9628d5772ce328349b9290e2d4efbed1800358fa;hpb=e034d6a8d034a3f8ca755bf89fae850f6387c505;p=sbcl.git diff --git a/contrib/sb-concurrency/gate.lisp b/contrib/sb-concurrency/gate.lisp index 9628d57..b51c37c 100644 --- a/contrib/sb-concurrency/gate.lisp +++ b/contrib/sb-concurrency/gate.lisp @@ -58,9 +58,10 @@ if the gate was already open." (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)