Use the hiccup mechanism to notify the socket end of the pair of the change in state, and have it shutdown that end, and shutdown the local end normally. This seems to resolve the shutdown and race condition issues.

This commit is contained in:
Ian Barber
2012-06-08 23:55:42 +01:00
parent b84b007981
commit 67497a2643
2 changed files with 9 additions and 4 deletions

View File

@@ -395,15 +395,15 @@ void zmq::session_base_t::detached ()
return;
}
reset ();
// For delayed connect situations, terminate the pipe
// and reestablish later on
if (pipe && options.delay_attach_on_connect == 1
&& addr->protocol != "pgm" && addr->protocol != "epgm") {
pipe->hiccup ();
pipe->terminate (false);
pipe = NULL;
}
reset ();
// Reconnect.
if (options.reconnect_ivl != -1)