The new logger event object for making get_entry() block when no logs are available was consuming the event's notification even if the thread did not need to block. This was causing excessive blocking - if multiple logs had been added since the last call to get_entry(), only one would be returned, and the next call would block until yet another log was added. Now only call event::wait() to block the calling thread if there are no logs available.
3.7 KiB
3.7 KiB