diff options
author | Martin Sustrik <sustrik@250bpm.com> | 2011-02-25 08:58:01 +0100 |
---|---|---|
committer | Martin Sustrik <sustrik@250bpm.com> | 2011-02-25 08:58:01 +0100 |
commit | d4e418f5f48a4d73e0a80a54593d11a6cd86d7bc (patch) | |
tree | d4d7de60c008739d2bf5d772b216bda4c856bea2 /src/socket_base.cpp | |
parent | c22e52737a5f12f0edfe3f669fa2bfd6e372dec7 (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/socket_base.cpp')
-rw-r--r-- | src/socket_base.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/socket_base.cpp b/src/socket_base.cpp index 2d366e8..6e07473 100644 --- a/src/socket_base.cpp +++ b/src/socket_base.cpp @@ -754,7 +754,21 @@ void zmq::socket_base_t::in_event () // Process any commands from other threads/sockets that may be available // at the moment. Ultimately, socket will be destroyed. process_commands (false, false); + check_destroy (); +} + +void zmq::socket_base_t::out_event () +{ + zmq_assert (false); +} + +void zmq::socket_base_t::timer_event (int id_) +{ + zmq_assert (false); +} +void zmq::socket_base_t::check_destroy () +{ // If the object was already marked as destroyed, finish the deallocation. if (destroyed) { @@ -771,13 +785,3 @@ void zmq::socket_base_t::in_event () own_t::process_destroy (); } } - -void zmq::socket_base_t::out_event () -{ - zmq_assert (false); -} - -void zmq::socket_base_t::timer_event (int id_) -{ - zmq_assert (false); -} |