diff options
| -rw-r--r-- | src/zmq_engine.cpp | 8 | 
1 files changed, 6 insertions, 2 deletions
diff --git a/src/zmq_engine.cpp b/src/zmq_engine.cpp index dace6ae..01fe98c 100644 --- a/src/zmq_engine.cpp +++ b/src/zmq_engine.cpp @@ -81,6 +81,8 @@ void zmq::zmq_engine_t::unplug ()  void zmq::zmq_engine_t::in_event ()  { +    bool disconnection = false; +      //  If there's no data to process in the buffer...      if (!insize) { @@ -91,8 +93,7 @@ void zmq::zmq_engine_t::in_event ()          //  Check whether the peer has closed the connection.          if (insize == (size_t) -1) {              insize = 0; -            error (); -            return; +            disconnection = true;          }      } @@ -114,6 +115,9 @@ void zmq::zmq_engine_t::in_event ()      //  Flush all messages the decoder may have produced.      inout->flush (); + +    if (disconnection) +        error ();  }  void zmq::zmq_engine_t::out_event ()  | 
