private bool HandleCompleteWriteError(Ring ring, int result) { var err = -result; if (err == EAGAIN || err == EWOULDBLOCK || err == EINTR) { Write(ring); return(true); } if (HasFlag(ConnectionState.WriteCancelled) && err == ECANCELED) { return(false); } Exception ex; if (err == ECONNRESET) { ex = new ErrnoException(err); ex = new ConnectionResetException(ex.Message, ex); } else { ex = new ErrnoException(err); } CompleteOutbound(ring, ex); return(false); }
// Returns whether the read handles are still needed private bool HandleCompleteReadError(Ring ring, int result) { if (result == 0) { // EOF CompleteInbound(ring, null); return(false); } var err = -result; if (err == EAGAIN || err == EWOULDBLOCK || err == EINTR) { Read(ring); return(true); } if (HasFlag(ConnectionState.ReadCancelled) && err == ECANCELED) { return(false); } Exception ex; if (err == ECONNRESET) { ex = new ErrnoException(ECONNRESET); ex = new ConnectionResetException(ex.Message, ex); } else { ex = new ErrnoException(err); } CompleteInbound(ring, ex); return(false); }