mirror of
https://github.com/zeromq/libzmq.git
synced 2025-10-23 16:48:08 +02:00
stop previous monitor socket before starting new one
avoids leaking sockets due to multiple monitor calls on one socket Alternative: raise error (not sure what errno; EADDRINUSE?) if collision detected; force manual stop.
This commit is contained in:
@@ -1537,6 +1537,10 @@ int zmq::socket_base_t::monitor (const char *addr_, int events_)
|
|||||||
errno = EPROTONOSUPPORT;
|
errno = EPROTONOSUPPORT;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
// already monitoring. Stop previous monitor before starting new one.
|
||||||
|
if (monitor_socket != NULL) {
|
||||||
|
stop_monitor (true);
|
||||||
|
}
|
||||||
// Register events to monitor
|
// Register events to monitor
|
||||||
monitor_events = events_;
|
monitor_events = events_;
|
||||||
monitor_socket = zmq_socket (get_ctx (), ZMQ_PAIR);
|
monitor_socket = zmq_socket (get_ctx (), ZMQ_PAIR);
|
||||||
|
Reference in New Issue
Block a user