anchor.diff:      (jpl-queues:enqueue process *process-queue*)))
   
   (defun message-poller (process)
  -  "Grab all messages from the queue and process them."
  +  "This is the main function of a process, which replaces the one created by
  +   define-process after the process has run for the first time. It checks for
  +   messages in the mailbox and also manages the process' timeouts."
     (let ((mailbox (proclock (process :mailbox) (process-mailbox process)))
           (msg-callback (proclock (process :message-callback) (process-message-callback process))))
       (if (and mailbox msg-callback)
  
positive.code:         (terminate process))))
  
  (defun run-process (process)
    "Runs a process."
    (let ((active (proclock (process :active) (process-active process)))
          (main (proclock (process :main) (process-main process)))
          (first-run (proclock (process :first-run) (process-first-run process))))
  
negative.code:     :documentation "Whether or not a process has been set up.")
     (queued :accessor process-queued :initform nil
      :documentation "Whether or not a process has been queued to run.")
     ;; TODO add locking around :event so it can be freed via terminate...
     (timer :accessor process-timer :initform (list :last-run 0
                                                    :timeout nil
                                                    :function nil
  