fixes #1565: Allow session to flush commands on an engine error

This commit is contained in:
Charles Stanley 2015-11-30 10:05:25 -05:00 committed by vagrant
parent e56b486735
commit 54799c8c6f
3 changed files with 12 additions and 0 deletions

View File

@ -428,6 +428,9 @@ void zmq::session_base_t::engine_error (
if (zap_pipe)
zap_pipe->check_read ();
zmq_assert(socket);
socket->flush_commands();
}
void zmq::session_base_t::process_term (int linger_)

View File

@ -1417,6 +1417,13 @@ void zmq::socket_base_t::check_destroy ()
}
}
void zmq::socket_base_t::flush_commands ()
{
ENTER_MUTEX();
process_commands (0, false);
EXIT_MUTEX();
}
void zmq::socket_base_t::read_activated (pipe_t *pipe_)
{
xread_activated (pipe_);

View File

@ -109,6 +109,8 @@ namespace zmq
void out_event ();
void timer_event (int id_);
void flush_commands();
// i_pipe_events interface implementation.
void read_activated (pipe_t *pipe_);
void write_activated (pipe_t *pipe_);