anchor.diff:                s.setListening(read: false, write: false);
               });
               connecting.clear();
  -          }, error: (e) {
  +          }, error: (e, st) {
               timer.cancel();
               socket.close();
               // Keep first error, if present.
  
positive.code:     if (len == 0) return null;
      var result = nativeRead(len);
      if (result is OSError) {
        reportError(result, "Read failed");
        return null;
      }
      if (result != null) {
  
negative.code:     }
    }
  
    void reportError(error, StackTrace st, String message) {
      var e = createError(error, message, address, localPort);
      // Invoke the error handler if any.
      if (eventHandlers[errorEvent] != null) {
        eventHandlers[errorEvent](e, st);
      }
      // For all errors we close the socket
      close();
  