problem:closed poller still associated with socket

This commit is contained in:
Doron Somech
2016-05-05 12:53:55 +03:00
parent e15da4b38c
commit a747f72450
5 changed files with 25 additions and 17 deletions

View File

@@ -186,19 +186,14 @@ int zmq::socket_poller_t::remove (socket_base_t *socket_)
return -1;
}
items.erase(it);
need_rebuild = true;
int thread_safe;
size_t thread_safe_size = sizeof(int);
if (socket_->getsockopt (ZMQ_THREAD_SAFE, &thread_safe, &thread_safe_size) == -1)
return -1;
if (thread_safe) {
if (socket_->remove_signaler (&signaler) == -1)
return -1;
}
items.erase (it);
need_rebuild = true;
if (socket_->getsockopt (ZMQ_THREAD_SAFE, &thread_safe, &thread_safe_size) == 0 && thread_safe)
socket_->remove_signaler (&signaler);
return 0;
}