summaryrefslogtreecommitdiff
path: root/src/reaper.cpp
diff options
context:
space:
mode:
authorMartin Sustrik <sustrik@250bpm.com>2011-02-25 08:58:01 +0100
committerMartin Sustrik <sustrik@250bpm.com>2011-02-25 08:58:01 +0100
commitd4e418f5f48a4d73e0a80a54593d11a6cd86d7bc (patch)
treed4d7de60c008739d2bf5d772b216bda4c856bea2 /src/reaper.cpp
parentc22e52737a5f12f0edfe3f669fa2bfd6e372dec7 (diff)
Socket with no owner objects is deallocated immediately
Till now the deallocation of such socket was delayed till zmq_term() thus creating a "leak". Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
Diffstat (limited to 'src/reaper.cpp')
-rw-r--r--src/reaper.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/reaper.cpp b/src/reaper.cpp
index 4710a91..7829482 100644
--- a/src/reaper.cpp
+++ b/src/reaper.cpp
@@ -96,12 +96,13 @@ void zmq::reaper_t::process_stop ()
void zmq::reaper_t::process_reap (socket_base_t *socket_)
{
- // Start termination of associated I/O object hierarchy.
- socket_->terminate ();
-
// Add the socket to the poller.
socket_->start_reaping (poller);
+ // Start termination of associated I/O object hierarchy.
+ socket_->terminate ();
+ socket_->check_destroy ();
+
++sockets;
}