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
The change to a blocking push on the ringbuffer means that a slow consumer can now jam up an asio thread. Consider changing the push to be asynchronous with asio calling back when the consumer has caught up. This will introduce complexity and possibly reduce performance, so needs to be carefully considered.
The text was updated successfully, but these errors were encountered:
run_in_strand lead to issues like #40. The new queue_mutex can still be
a source of similar deadlocks, but heap_ready no longer blocks emplace_reader,
because that uses a separate reader_mutex.
It is still possible for deadlocks to occur when sharing a thread pool
between multiple streams with fewer threads than streams: if it has one
thread, it could be blocked waiting for space in ringbuffer A, which can
prevent a stop on B from making progress. Fixing that would require
addressing #30.
The change to a blocking push on the ringbuffer means that a slow consumer can now jam up an asio thread. Consider changing the push to be asynchronous with asio calling back when the consumer has caught up. This will introduce complexity and possibly reduce performance, so needs to be carefully considered.
The text was updated successfully, but these errors were encountered: