(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)))))))