We often prefer to wait for requested data.
class BufferReader:
def __init__(
self,
buffer: RWLockSortedDeque,
source_reader_info: dict,
stop_event: threading.Event,
*,
blocking=False, # <---- Add this
read_size=1,
peek=False,
strict_n=False,
ignore_no_item_found=False,
):
...
reader = stream_buffer.mk_reader(blocking=True). # <---- Allow this