summaryrefslogtreecommitdiff
path: root/src/socket_base.cpp
diff options
context:
space:
mode:
authorMartin Sustrik <sustrik@250bpm.com>2010-08-12 08:16:18 +0200
committerMartin Sustrik <sustrik@250bpm.com>2010-08-25 15:39:20 +0200
commit936dbf956b0f1471a96fc06bcba67765257dbc4a (patch)
treeb23704ec1d4d6f8c6c94e55919fcfcc1d0f26d6a /src/socket_base.cpp
parent76bd6e73c335dbebd8bd30565f83a810058f2cc8 (diff)
dezombification procedure fixed
Diffstat (limited to 'src/socket_base.cpp')
-rw-r--r--src/socket_base.cpp10
1 files changed, 6 insertions, 4 deletions
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_)