Commit 80adc135 authored by Constantin Rack's avatar Constantin Rack

Merge pull request #1491 from brian-peloton/fix-eventfd-under-load

Fix eventfd read handling under heavy load.
parents 7b2e37dc 62a0e450
......@@ -291,10 +291,10 @@ void zmq::signaler_t::recv ()
ssize_t sz = read (r, &dummy, sizeof (dummy));
errno_assert (sz == sizeof (dummy));
// If we accidentally grabbed the next signal along with the current
// If we accidentally grabbed the next signal(s) along with the current
// one, return it back to the eventfd object.
if (unlikely (dummy == 2)) {
const uint64_t inc = 1;
if (unlikely (dummy > 1)) {
const uint64_t inc = dummy - 1;
ssize_t sz2 = write (w, &inc, sizeof (inc));
errno_assert (sz2 == sizeof (inc));
return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment