mirror of
https://github.com/zeromq/libzmq.git
synced 2025-01-06 00:31:13 +01:00
Fix LIBZMQ-404: zmq_term not truly re-entrant
zmq_term can not safely be re-entered with pgm transport. Fix proposed by Steven McCoy.
This commit is contained in:
parent
631e12d4e5
commit
92bee5a6db
@ -173,6 +173,8 @@ int zmq_ctx_destroy (void *ctx_)
|
||||
int rc = ((zmq::ctx_t*) ctx_)->terminate ();
|
||||
int en = errno;
|
||||
|
||||
// Shut down only if termination was not interrupted by a signal.
|
||||
if (!rc || en != EINTR) {
|
||||
#ifdef ZMQ_HAVE_WINDOWS
|
||||
// On Windows, uninitialise socket layer.
|
||||
rc = WSACleanup ();
|
||||
@ -184,6 +186,7 @@ int zmq_ctx_destroy (void *ctx_)
|
||||
if (pgm_shutdown () != TRUE)
|
||||
zmq_assert (false);
|
||||
#endif
|
||||
}
|
||||
|
||||
errno = en;
|
||||
return rc;
|
||||
|
Loading…
Reference in New Issue
Block a user