anchor.diff:  
   (defun process-wait (reason function &rest arguments)
     (declare (dynamic-extent arguments))
  -  (if (and *current-process*
  -	   *scheduler-stack-group*
  -	   (not (eql (stack-group-state *scheduler-stack-group*) :active)))
  -      (progn
  -	(setf (process-whostate *current-process*) reason
  -	      (process-wait-function *current-process*) function
  -	      (process-wait-argument-list *current-process*) arguments)
  -	(switch-to-stack-group *scheduler-stack-group*))
  -      (do ()
  -	  ((apply function arguments))
  -	(%hlt))))
  +  (setf (process-whostate *current-process*) reason
  +        (process-wait-function *current-process*) function
  +        (process-wait-argument-list *current-process*) arguments)
  +  (process-yield))
   
   ;; todo, Fix this...
   (defun process-wait-with-timeout (reason timeout function &rest arguments)
  
positive.code:                          ,@body)
           (sys.int::process-disable ,x)))))
  
  (setf *scheduler-stack-group* (make-stack-group "scheduler"
                                                  :interruptable nil))
  (stack-group-preset *scheduler-stack-group* #'process-scheduler)
  (setf *current-process* (%make-process :name "Initial Process"
                                         :stack-group (current-stack-group)
                                         :run-reasons '(:initial)
                                         :whostate "RUN"))
  (process-consider-runnability *current-process*)
  
  (defconstant +spinlocked-locked-value+ 0)
  (defconstant +spinlocked-unlocked-value+ 1)
  
negative.code: (in-package :sys.int)
  
  (defvar *current-process* nil)
  (defvar *idle-process* nil)
  (defvar *run-queue* nil)
  
  (defstruct (process
  