anchor.diff:    ((sock :initform (sockets:make-socket :ipv6 nil :reuse-address t)
            :initarg :sock
            :accessor sock)
  -   (watchers :initform (vector nil nil)
  +   (watchers :initform (vector nil nil nil)
                :accessor watchers
  -             :documentation "#(read write) watchers.")
  +             :documentation "#(read write timeout) watchers.")
      (writes :initform (list)
              :accessor writes
              :documentation "List of 3-vectors in the format
  
positive.code:   "Close the socket, emit \"close\" event."
    (ev:stop-watcher (owner socket) (svref (watchers socket) 0))
    (ev:stop-watcher (owner socket) (svref (watchers socket) 1))
    (emit socket "close" socket))
  
  ;; Event methods
  (defmethod on-read ((socket socket))
    (if (sockets:socket-open-p (sock socket))
        (when (sockets:socket-connected-p (sock socket))
  
negative.code: 
    (when (svref (watchers socket) 1) ;; Writer watcher
      (ev:stop-watcher (owner socket) (svref (watchers socket) 1))
      (setf (svref (watchers socket) 1) nil))
  
    (when (svref (watchers socket) 2) ;; Timeout watcher
      (ev:stop-watcher (owner socket) (svref (watchers socket) 2))
      (setf (svref (watchers socket) 2) nil)))
  
  (defmethod init-watchers ((socket socket))
    (let ((read-watcher (make-instance 'ev:ev-io-watcher)))
  