anchor.diff:         (when (null *world-stop-pending*)
            (return))
          ;; Don't go PA if there is a thread waiting to stop the world.
  +       ;; FIXME: Can deadlock...
          (condition-wait *world-stop-cvar* *world-stop-lock*))
       ;; TODO: Have a list of pseudo atomic threads, and prevent PA threads
       ;; from being inspected.
  
positive.code:               *world-stop-pending* nil)
          (release-global-thread-lock))
        (quiesce-cpus-for-world-stop))
      ;; Don't hold the mutex over the thunk, it's a spinlock and disables interrupts.
      (multiple-value-prog1
          (funcall thunk)
        (with-world-stop-lock ()
          ;; Release the dogs!
  
negative.code:            (setf *world-stop-pending* self)
             (return))
           ;; Wait for the world to unstop.
           ;; FIXME: This can still cause deadlocks when reacquiring the lock.
           (condition-wait *world-stop-cvar* *world-stop-lock*))
        ;; Now wait for any PA threads to finish.
        (loop
           (when (zerop *pseudo-atomic-thread-count*)
             (return))
           ;; FIXME: Same here.
           (condition-wait *world-stop-cvar* *world-stop-lock*))
        (safe-without-interrupts (self)
          (acquire-global-thread-lock)
  