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:     (when (and schedule-time (> (now) schedule-time))
        (let* ((event (pop schedule))
               (sheet (pop schedule)))
          (setf schedule-time (pop schedule))
          (dispatch-event sheet event)))))
  
  ;;; ugh. FIXME when I work - build a priority queue or something
  (defun schedule-event-queue (event-queue sheet event delay)
  
negative.code:     (warn "EVENT-QUEUE-READ-WITH-TIMEOUT: ignoring WAIT-FUNCTION."))
    (let ((lock (event-queue-lock queue))
          (cv (event-queue-processes queue)))
      (with-recursive-lock-held (lock)
        (or (%event-queue-read queue)
            (let* ((schedule-time (event-schedule-time queue))
                   (timeout (if (null schedule-time)
  