mirror of
https://github.com/zeromq/libzmq.git
synced 2025-03-10 07:56:09 +00:00
avoid duplicate entries in zmq_poll
zmq_poller doesn't allow a socket to appear twice
This commit is contained in:
parent
b0df7f1f17
commit
c636147c98
@ -130,6 +130,15 @@ int zmq::proxy (
|
||||
{ backend_, 0, ZMQ_POLLOUT, 0 }
|
||||
};
|
||||
|
||||
int control_idx = 2;
|
||||
if (frontend_ == backend_) {
|
||||
// when frontend & backend are the same,
|
||||
// avoid duplicate poll entries
|
||||
qt_poll_items -= 1;
|
||||
items[1] = items[2];
|
||||
control_idx = 1;
|
||||
}
|
||||
|
||||
// Proxy can be in these three states
|
||||
enum {
|
||||
active,
|
||||
@ -154,7 +163,7 @@ int zmq::proxy (
|
||||
}
|
||||
|
||||
// Process a control command if any
|
||||
if (control_ && items [2].revents & ZMQ_POLLIN) {
|
||||
if (control_ && items [control_idx].revents & ZMQ_POLLIN) {
|
||||
rc = control_->recv (&msg, 0);
|
||||
if (unlikely (rc < 0))
|
||||
return -1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user