anchor.diff:           (setf proc (process-next proc))
            (when (eql proc start) (return)))))
   
  -;;; FIXME: Running for so long with interrupts disabled is lame.
  -;;; Probably need to speed this up somehow.
  -(defun process-scheduler ()
  -  (let ((*terminal-io* *terminal-io*)
  -        (*standard-output* *standard-output*)
  -        (*standard-input* *standard-input*)
  -        (*debug-io* *debug-io*)
  -        (*query-io* *query-io*)
  -        (*error-output* *error-output*))
  -    (loop
  -       (%cli)
  -       (let ((next-process (get-next-process)))
  -         (setf *current-process* next-process)
  -         (cond (next-process
  -                (switch-to-stack-group (process-stack-group next-process)))
  -               (t (%stihlt)))))))
  +(defun process-yield ()
  +  (with-interrupts-disabled ()
  +    (let ((next-process (or (get-next-process)
  +                            *idle-process*)))
  +      (unless (eql next-process *current-process*)
  +        (setf *current-process* next-process)
  +        (switch-to-stack-group (process-stack-group next-process))))))
  +
  +(defun idle-process ()
  +  (%cli)
  +  (loop
  +     (let ((next-process (get-next-process)))
  +       (cond (next-process
  +              (setf *current-process* next-process)
  +              (switch-to-stack-group (process-stack-group next-process)))
  +             (t (%stihlt))))))
   
   (defun make-process (name &key
                               control-stack-size
  
positive.code:                           (apply (first (process-initial-form process))
                                   (rest (process-initial-form process))))
                          (process-disable process)
                          (switch-to-stack-group *scheduler-stack-group* t))))
  
  (defun process-run-reason (process object)
    (pushnew object (process-run-reasons process))
  
negative.code:                          ,@body)
           (sys.int::process-disable ,x)))))
  
  (setf *current-process* (%make-process :name "Initial Process"
                                         :stack-group (current-stack-group)
                                         :run-reasons '(:initial)
                                         :whostate "RUN"))
  (process-consider-runnability *current-process*)
  
  (setf *idle-process* (make-process "Idle"))
  (process-preset *idle-process* #'idle-process)
  
  (defconstant +spinlocked-locked-value+ 0)
  (defconstant +spinlocked-unlocked-value+ 1)
  