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); -}  | 
