diff --git a/src/ipc_connecter.cpp b/src/ipc_connecter.cpp index 818ff865..df3993dd 100644 --- a/src/ipc_connecter.cpp +++ b/src/ipc_connecter.cpp @@ -59,9 +59,13 @@ zmq::ipc_connecter_t::ipc_connecter_t (class io_thread_t *io_thread_, zmq::ipc_connecter_t::~ipc_connecter_t () { - zmq_assert (!wait); - zmq_assert (!handle_valid); - zmq_assert (s == retired_fd); + if (wait) + cancel_timer (reconnect_timer_id); + if (handle_valid) + rm_fd (handle); + + if (s != retired_fd) + close (); } void zmq::ipc_connecter_t::process_plug () @@ -72,24 +76,6 @@ void zmq::ipc_connecter_t::process_plug () start_connecting (); } -void zmq::ipc_connecter_t::process_term (int linger_) -{ - if (wait) { - cancel_timer (reconnect_timer_id); - wait = false; - } - - if (handle_valid) { - rm_fd (handle); - handle_valid = false; - } - - if (s != retired_fd) - close (); - - own_t::process_term (linger_); -} - void zmq::ipc_connecter_t::in_event () { // We are not polling for incomming data, so we are actually called diff --git a/src/ipc_connecter.hpp b/src/ipc_connecter.hpp index 604922b8..34df9776 100644 --- a/src/ipc_connecter.hpp +++ b/src/ipc_connecter.hpp @@ -55,7 +55,6 @@ namespace zmq // Handlers for incoming commands. void process_plug (); - void process_term (int linger_); // Handlers for I/O events. void in_event (); diff --git a/src/ipc_listener.cpp b/src/ipc_listener.cpp index 0033eef4..becf30dc 100644 --- a/src/ipc_listener.cpp +++ b/src/ipc_listener.cpp @@ -52,7 +52,8 @@ zmq::ipc_listener_t::ipc_listener_t (io_thread_t *io_thread_, zmq::ipc_listener_t::~ipc_listener_t () { - zmq_assert (s == retired_fd); + if (s != retired_fd) + close (); } void zmq::ipc_listener_t::process_plug () diff --git a/src/tcp_connecter.cpp b/src/tcp_connecter.cpp index 0a6fe128..407490c3 100644 --- a/src/tcp_connecter.cpp +++ b/src/tcp_connecter.cpp @@ -69,9 +69,13 @@ zmq::tcp_connecter_t::tcp_connecter_t (class io_thread_t *io_thread_, zmq::tcp_connecter_t::~tcp_connecter_t () { - zmq_assert (!wait); - zmq_assert (!handle_valid); - zmq_assert (s == retired_fd); + if (wait) + cancel_timer (reconnect_timer_id); + if (handle_valid) + rm_fd (handle); + + if (s != retired_fd) + close (); } void zmq::tcp_connecter_t::process_plug () @@ -82,24 +86,6 @@ void zmq::tcp_connecter_t::process_plug () start_connecting (); } -void zmq::tcp_connecter_t::process_term (int linger_) -{ - if (wait) { - cancel_timer (reconnect_timer_id); - wait = false; - } - - if (handle_valid) { - rm_fd (handle); - handle_valid = false; - } - - if (s != retired_fd) - close (); - - own_t::process_term (linger_); -} - void zmq::tcp_connecter_t::in_event () { // We are not polling for incomming data, so we are actually called diff --git a/src/tcp_connecter.hpp b/src/tcp_connecter.hpp index e1b26b23..a157dc55 100644 --- a/src/tcp_connecter.hpp +++ b/src/tcp_connecter.hpp @@ -53,7 +53,6 @@ namespace zmq // Handlers for incoming commands. void process_plug (); - void process_term (int linger_); // Handlers for I/O events. void in_event (); diff --git a/src/tcp_listener.cpp b/src/tcp_listener.cpp index 5fbe3cd9..173a22f1 100644 --- a/src/tcp_listener.cpp +++ b/src/tcp_listener.cpp @@ -61,7 +61,8 @@ zmq::tcp_listener_t::tcp_listener_t (io_thread_t *io_thread_, zmq::tcp_listener_t::~tcp_listener_t () { - zmq_assert (s == retired_fd); + if (s != retired_fd) + close (); } void zmq::tcp_listener_t::process_plug ()