anchor.diff:    (check-schedule queue)
     (let ((lock (event-queue-lock queue))
           (cv (event-queue-processes queue)))
  -    (with-lock-held (lock)
  +    (with-recursive-lock-held (lock)
         (or (not (null (event-queue-head queue)))
             (let* ((schedule-time (event-schedule-time queue))
                    (timeout (cond ((null schedule-time) timeout)
  
positive.code: 
  (defclass concurrent-event-queue (simple-event-queue)
    ((lock :initform (make-lock "event queue")
           :reader event-queue-lock)
     (processes
           :initform (make-condition-variable)
  
negative.code:   (do-port-force-output queue)
    (check-schedule queue)
    (or (not (null (event-queue-head queue)))
        (let* ((schedule-time (event-schedule-time queue))
               (timeout (cond ((null schedule-time) timeout)
                              ((null timeout) (- schedule-time (now)))
                              (T (min timeout (- schedule-time (now))))))
               (port (event-queue-port queue)))
          (process-next-event port :timeout timeout)
          (check-schedule queue)
          (not (null (event-queue-head queue))))))
  
  