X-Git-Url: http://git.pond.sub.org/?p=eow;a=blobdiff_plain;f=locked-queue.lisp;h=8fd9270e9769cbec8f1fbea29c6a7af3ff1a0799;hp=d225faccc7e7242eb998dcfe897802e70efe3da8;hb=54e14006564ff34c8249b9ddb357201759d77101;hpb=e0b3c3178cfd2a720f98655f8c3bc91400f1b6ee diff --git a/locked-queue.lisp b/locked-queue.lisp index d225fac..8fd9270 100644 --- a/locked-queue.lisp +++ b/locked-queue.lisp @@ -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)))))))