Commit bdd4e135 authored by Ian Barber's avatar Ian Barber

Revert "Revert "Merge branch 'master' of github.com:zeromq/libzmq""

This reverts commit dde69fb9.
parent 029d3dfa
...@@ -59,13 +59,9 @@ zmq::ipc_connecter_t::ipc_connecter_t (class io_thread_t *io_thread_, ...@@ -59,13 +59,9 @@ zmq::ipc_connecter_t::ipc_connecter_t (class io_thread_t *io_thread_,
zmq::ipc_connecter_t::~ipc_connecter_t () zmq::ipc_connecter_t::~ipc_connecter_t ()
{ {
if (wait) zmq_assert (!wait);
cancel_timer (reconnect_timer_id); zmq_assert (!handle_valid);
if (handle_valid) zmq_assert (s == retired_fd);
rm_fd (handle);
if (s != retired_fd)
close ();
} }
void zmq::ipc_connecter_t::process_plug () void zmq::ipc_connecter_t::process_plug ()
...@@ -76,6 +72,24 @@ void zmq::ipc_connecter_t::process_plug () ...@@ -76,6 +72,24 @@ void zmq::ipc_connecter_t::process_plug ()
start_connecting (); 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 () void zmq::ipc_connecter_t::in_event ()
{ {
// We are not polling for incomming data, so we are actually called // We are not polling for incomming data, so we are actually called
......
...@@ -55,6 +55,7 @@ namespace zmq ...@@ -55,6 +55,7 @@ namespace zmq
// Handlers for incoming commands. // Handlers for incoming commands.
void process_plug (); void process_plug ();
void process_term (int linger_);
// Handlers for I/O events. // Handlers for I/O events.
void in_event (); void in_event ();
......
...@@ -52,8 +52,7 @@ zmq::ipc_listener_t::ipc_listener_t (io_thread_t *io_thread_, ...@@ -52,8 +52,7 @@ zmq::ipc_listener_t::ipc_listener_t (io_thread_t *io_thread_,
zmq::ipc_listener_t::~ipc_listener_t () zmq::ipc_listener_t::~ipc_listener_t ()
{ {
if (s != retired_fd) zmq_assert (s == retired_fd);
close ();
} }
void zmq::ipc_listener_t::process_plug () void zmq::ipc_listener_t::process_plug ()
......
...@@ -68,13 +68,9 @@ zmq::tcp_connecter_t::tcp_connecter_t (class io_thread_t *io_thread_, ...@@ -68,13 +68,9 @@ zmq::tcp_connecter_t::tcp_connecter_t (class io_thread_t *io_thread_,
zmq::tcp_connecter_t::~tcp_connecter_t () zmq::tcp_connecter_t::~tcp_connecter_t ()
{ {
if (wait) zmq_assert (!wait);
cancel_timer (reconnect_timer_id); zmq_assert (!handle_valid);
if (handle_valid) zmq_assert (s == retired_fd);
rm_fd (handle);
if (s != retired_fd)
close ();
} }
void zmq::tcp_connecter_t::process_plug () void zmq::tcp_connecter_t::process_plug ()
...@@ -85,6 +81,24 @@ void zmq::tcp_connecter_t::process_plug () ...@@ -85,6 +81,24 @@ void zmq::tcp_connecter_t::process_plug ()
start_connecting (); 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 () void zmq::tcp_connecter_t::in_event ()
{ {
// We are not polling for incomming data, so we are actually called // We are not polling for incomming data, so we are actually called
......
...@@ -53,6 +53,7 @@ namespace zmq ...@@ -53,6 +53,7 @@ namespace zmq
// Handlers for incoming commands. // Handlers for incoming commands.
void process_plug (); void process_plug ();
void process_term (int linger_);
// Handlers for I/O events. // Handlers for I/O events.
void in_event (); void in_event ();
......
...@@ -60,8 +60,7 @@ zmq::tcp_listener_t::tcp_listener_t (io_thread_t *io_thread_, ...@@ -60,8 +60,7 @@ zmq::tcp_listener_t::tcp_listener_t (io_thread_t *io_thread_,
zmq::tcp_listener_t::~tcp_listener_t () zmq::tcp_listener_t::~tcp_listener_t ()
{ {
if (s != retired_fd) zmq_assert (s == retired_fd);
close ();
} }
void zmq::tcp_listener_t::process_plug () void zmq::tcp_listener_t::process_plug ()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment