From 936dbf956b0f1471a96fc06bcba67765257dbc4a Mon Sep 17 00:00:00 2001 From: Martin Sustrik Date: Thu, 12 Aug 2010 08:16:18 +0200 Subject: dezombification procedure fixed --- src/socket_base.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/socket_base.cpp') diff --git a/src/socket_base.cpp b/src/socket_base.cpp index 903e781..89b8a29 100644 --- a/src/socket_base.cpp +++ b/src/socket_base.cpp @@ -118,10 +118,15 @@ zmq::socket_base_t::socket_base_t (ctx_t *parent_, uint32_t slot_) : zmq::socket_base_t::~socket_base_t () { + zmq_assert (zombie); + // Check whether there are no session leaks. sessions_sync.lock (); zmq_assert (sessions.empty ()); sessions_sync.unlock (); + + // Mark the socket slot as empty. + dezombify_socket (this); } zmq::signaler_t *zmq::socket_base_t::get_signaler () @@ -599,16 +604,13 @@ zmq::session_t *zmq::socket_base_t::find_session (const blob_t &peer_identity_) return session; } -bool zmq::socket_base_t::dezombify () +void zmq::socket_base_t::dezombify () { zmq_assert (zombie); // Process any commands from other threads/sockets that may be available // at the moment. Ultimately, socket will be destroyed. process_commands (false, false); - -// TODO: ??? - return true; } void zmq::socket_base_t::process_commands (bool block_, bool throttle_) -- cgit v1.2.3