diff options
Diffstat (limited to 'src/zmq_engine.cpp')
-rw-r--r-- | src/zmq_engine.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/zmq_engine.cpp b/src/zmq_engine.cpp index 623ca63..8e0392c 100644 --- a/src/zmq_engine.cpp +++ b/src/zmq_engine.cpp @@ -102,19 +102,19 @@ void zmq::zmq_engine_t::in_event () // Push the data to the decoder. size_t processed = decoder.process_buffer (inpos, insize); - // Adjust the buffer. - inpos += processed; - insize -= processed; - // Stop polling for input if we got stuck. if (processed < insize) { - // This may happen if queue limits are implemented or when + // This may happen if queue limits are in effect or when // init object reads all required information from the socket // and rejects to read more data. reset_pollin (handle); } + // Adjust the buffer. + inpos += processed; + insize -= processed; + // Flush all messages the decoder may have produced. inout->flush (); @@ -162,6 +162,13 @@ void zmq::zmq_engine_t::revive () out_event (); } +void zmq::zmq_engine_t::resume_input () +{ + set_pollin (handle); + + in_event (); +} + void zmq::zmq_engine_t::add_prefix (const blob_t &identity_) { decoder.add_prefix (identity_); |