anchor.diff:             "QUEUE" "MAKE" "P" "ALIVE-P"
              "ENQUEUE" "ENQUEUE-ALL" "STOP"
              "PUSH-SELF" "PUSH-SELF-ALL"
  -           "CURRENT-QUEUE")
  +           "PROGRESS-UNTIL"
  +           "CURRENT-QUEUE" "WORKER-ID" "WORKER-COUNT")
     (:import-from "WORK-STACK"
                   "TASK" "TASK-P"
                   "BULK-TASK" "BULK-TASK-P"
  
positive.code:            (try))
          ;; Don't do this at home.
         (setf fast nil)
          (with-mutex (lock)
            (if (condition-wait cvar lock :timeout timeout)
                (setf fast t)
                (grab-mutex lock)))
          (setf timeout (min 1.0 (* timeout 1.1)))))))
  
  (defun %make-worker (wqueue i &optional binding-names binding-compute)
    (let* ((locks  (queue-locks  wqueue))
  
negative.code: (defvar *worker-hint* 0)
  (defvar *current-queue* nil)
  
  (declaim (inline current-queue worker-id worker-count))
  (defun current-queue ()
    (and *current-queue*
         (weak-pointer-value *current-queue*)))
  
  (defun worker-id ()
    *worker-id*)
  
  (defun worker-count ()
    (let ((queue (current-queue)))
      (and queue (queue-nthread queue))))
  
  (defun loop-get-task (state lock cvar queue stacks i
                        &optional max-time)
    (flet ((try ()
             (when (eql (car state) :done)
               (return-from loop-get-task nil))
  