]> git.pond.sub.org Git - eow/blobdiff - locked-queue.lisp
Put tests in separate system
[eow] / locked-queue.lisp
index d225faccc7e7242eb998dcfe897802e70efe3da8..8fd9270e9769cbec8f1fbea29c6a7af3ff1a0799 100644 (file)
@@ -13,9 +13,9 @@
 (defmethod dequeue ((q locked-queue))
   (with-slots (queue mutex waitq) q
     (with-mutex (mutex)
-      (if (or (null queue)
-             (null (first queue)))
-         (condition-wait waitq mutex))
+      (loop while (or (null queue)
+                     (null (first queue)))
+          do (condition-wait waitq mutex))
       (prog1 (first (car queue))
        (setf (car queue)
              (rest (car queue)))))))