mirror of https://github.com/oxen-io/oxen-mq.git
caadd35052
This fixes a hang in the epoll code that triggers on heavy, bursty connections (such as the live SPNS APNs notifier). It turns out that side-effects of processing our sockets could leave other sockets (that we processed earlier in the loop) in a needs-attention state which we might not notice if we go back to epoll_wait right away. zmq::poll apparently takes care of this (and so is safe to re-poll even in this state), but when we are using epoll we need to worry about it by always checking for zmq events (which itself has side effects) and, if we get any, re-enter the loop body immediately *without* polling to deal with them. |
||
---|---|---|
.. | ||
address.cpp | ||
address.h | ||
auth.cpp | ||
auth.h | ||
batch.h | ||
connections.cpp | ||
connections.h | ||
fmt.h | ||
jobs.cpp | ||
message.h | ||
oxenmq-internal.h | ||
oxenmq.cpp | ||
oxenmq.h | ||
proxy.cpp | ||
pubsub.h | ||
version.h.in | ||
worker.cpp |