anchor.diff:    (setq *io-descriptions* nil))
   
   
  +
  +;;;; IO-System
  +
  +(defclass io-system ()
  +  ())
  +
  +(defclass io-system-select (io-system)
  +  ())
  +
  +(defclass io-system-multiprocess (io-system)
  +  ((read-ready :initform nil  :accessor io-read-ready)))
  +
  +
  +(defvar *io-system*
  +  #+digitool (make-instance 'io-system-multiprocess)
  +  #-digitool (make-instance 'io-system-select))
  +
  +(defun io-system-switch (new-class)
  +  (io-reset)
  +  (setq *io-system* (make-instance new-class)))
  +
  +
  +(defgeneric io-ready-for-read (system desc)
  +  (:method ((system io-system) desc)
  +           (declare (ignore desc))))
  +
  +(defgeneric io-ready-for-write (system desc)
  +  (:method ((system io-system) desc)
  +           (declare (ignore desc))))
  +
  +
  +
  +;;;; Event Queue
  +
   (defun io-queue-event (type desc)
     (push (list type desc) *io-event-queue*))
  +
  +
  +;;;; Creating io-descriptors
   
   (defun io-create-listener (&optional port)
     (setq *io-socket* (open-passive-socket port))
  
positive.code: ;; - define what error contain (e.g. a condition)
  ;; ~ status member nil :connected :broken
  
  (defparameter *io-multi-process* (or #+mcl t ))
  (defparameter *io-background-write-treshold* 200)
  
  (defvar *io-event-queue* nil)
  (defvar *io-ready-for-read* nil)
  
  (defvar *io-socket* nil
    "listener socket (or similar). Producer of connections.")
  (defvar *io-listener-process* nil)
  
  (defvar *io-descriptions* nil
    "List of all io-descriptors that we will do I/O on.")
  
  
  (defun io-fix-broken ()
    (setq *io-descriptions*
          (loop for desc in *io-descriptions*
                if (eq :broken (io-descriptor-status desc))
                do (close (io-descriptor-stream desc))
                else collect desc))
    (setq *io-ready-for-read*
          (loop for desc in *io-ready-for-read*
                unless (eq :broken (io-descriptor-status desc))
                collect desc)))
  
  (defun io-reset (&key (listener nil))
    (when (and listener *io-socket*)
  
negative.code: 
  (in-package :clorb)
  
  (defparameter *io-background-write-treshold* 200)
  
  (defvar *io-event-queue* nil)
  
  (defvar *io-socket* nil
    "listener socket (or similar). Producer of connections.")
  (defvar *io-listener-process* nil)
  
  (defvar *io-descriptions* nil
    "List of all io-descriptors that we will do I/O on.")
  
  
  
  ;;;; IO-DESCRIPTOR
  
  (defstruct io-descriptor
    status
    error
    ;; -- internal --
  