You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In my fully asynchronous application, I need to keep track of the number of connections on some ZeroMQ sockets, for which I am using the socket monitor feature. However, because the monitoring socket pair uses the inproc transport, azmq resorts to polling for new events for implementing async_read. As a side effect, this leads to my program hogging 100% of its CPU core all of the time. Is there any chance to implement this more efficiently without changing ZeroMQ itself? (I'd like to avoid relying on a custom fork.)
As a workaround, I currently only check for new socket events on a timer. But this is obviously not ideal, as it introduces extra latency to the handling of these events.
The text was updated successfully, but these errors were encountered:
In my fully asynchronous application, I need to keep track of the number
of connections on some ZeroMQ sockets, for which I am using the socket
monitor feature. However, because the monitoring socket pair uses the
inproc transport, azmq resorts to polling for new events for implementing
async_read. As a side effect, this leads my program to hog 100% of its
CPU core all of the time. Is there any chance to implement this more
efficiently without changing ZeroMQ itself? (I'd like to avoid shipping a
custom fork.)
As a workaround, I currently only check for new socket events on a timer.
But this is obviously not ideal, as it introduces extra latency to the
handling of these events.
—
Reply to this email directly or view it on GitHub #97.
Sorry for not responding earlier; yes, I believe this has been fixed. I'm a bit hazy on the details, but I checked my code base, and I definitely reverted the timer workaround.
In my fully asynchronous application, I need to keep track of the number of connections on some ZeroMQ sockets, for which I am using the socket monitor feature. However, because the monitoring socket pair uses the inproc transport, azmq resorts to polling for new events for implementing
async_read
. As a side effect, this leads to my program hogging 100% of its CPU core all of the time. Is there any chance to implement this more efficiently without changing ZeroMQ itself? (I'd like to avoid relying on a custom fork.)As a workaround, I currently only check for new socket events on a timer. But this is obviously not ideal, as it introduces extra latency to the handling of these events.
The text was updated successfully, but these errors were encountered: