From 1d2399720b3fd06da5e7f9f4a211f30c57a9ce2d Mon Sep 17 00:00:00 2001 From: Martin Sustrik Date: Sun, 19 Sep 2010 22:45:48 +0200 Subject: zmq_init_t destroyed zmq_engine_t before plugging it out from the poller first -- fixed --- src/zmq_engine.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/zmq_engine.cpp') diff --git a/src/zmq_engine.cpp b/src/zmq_engine.cpp index 3e98c53..815697c 100644 --- a/src/zmq_engine.cpp +++ b/src/zmq_engine.cpp @@ -40,7 +40,8 @@ zmq::zmq_engine_t::zmq_engine_t (fd_t fd_, const options_t &options_) : outsize (0), encoder (out_batch_size), inout (NULL), - options (options_) + options (options_), + plugged (false) { // Initialise the underlying socket. int rc = tcp_socket.open (fd_, options.sndbuf, options.rcvbuf); @@ -49,10 +50,14 @@ zmq::zmq_engine_t::zmq_engine_t (fd_t fd_, const options_t &options_) : zmq::zmq_engine_t::~zmq_engine_t () { + zmq_assert (!plugged); } void zmq::zmq_engine_t::plug (io_thread_t *io_thread_, i_inout *inout_) { + zmq_assert (!plugged); + plugged = true; + // Conncet to session/init object. zmq_assert (!inout); zmq_assert (inout_); @@ -72,6 +77,9 @@ void zmq::zmq_engine_t::plug (io_thread_t *io_thread_, i_inout *inout_) void zmq::zmq_engine_t::unplug () { + zmq_assert (plugged); + plugged = false; + // Cancel all fd subscriptions. rm_fd (handle); -- cgit v1.2.3