oxen-mq/oxenmq
Jason Rhinelander caadd35052
epoll: fix hang on heavily loaded sockets
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.
2023-09-15 18:29:23 -03:00
..
address.cpp Use oxen-encoding and add compatibility shim headers 2022-01-18 10:30:23 -04:00
address.h Add std::hash implementation for oxenmq::address 2021-11-28 10:26:35 -04:00
auth.cpp Use oxen-encoding and add compatibility shim headers 2022-01-18 10:30:23 -04:00
auth.h adds custom formatter for OMQ structs that have to_string member 2022-08-04 10:50:02 +10:00
batch.h Add simpler Job subclass of Batch for simple jobs 2022-05-12 12:20:51 -03:00
connections.cpp Add epoll support for Linux 2023-09-14 15:03:15 -03:00
connections.h adds custom formatter for OMQ structs that have to_string member 2022-08-04 10:50:02 +10:00
fmt.h adds custom formatter for OMQ structs that have to_string member 2022-08-04 10:50:02 +10:00
jobs.cpp Use raw index bytes in worker router 2022-05-12 12:38:13 -03:00
message.h Rebrand variables LMQ -> OMQ 2021-11-30 14:10:47 -04:00
oxenmq-internal.h Add epoll support for Linux 2023-09-14 15:03:15 -03:00
oxenmq.cpp Redo random string generation 2023-04-04 12:16:43 -03:00
oxenmq.h Add epoll support for Linux 2023-09-14 15:03:15 -03:00
proxy.cpp epoll: fix hang on heavily loaded sockets 2023-09-15 18:29:23 -03:00
pubsub.h initial implementation of generic pub/sub management 2022-09-28 15:43:45 -04:00
version.h.in
worker.cpp Fix a race condition with tagged thread startup 2022-10-05 19:32:54 -03:00