Skip to content

Commit 70ce203

Browse files
authored
fix: linger resets on each record arrival in append_record_batches (#14)
1 parent 043be93 commit 70ce203

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

src/s2_sdk/_batching.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,17 @@ async def append_record_batches(
6464
continue
6565

6666
try:
67+
deadline = (
68+
asyncio.get_event_loop().time() + linger_secs
69+
if linger_secs > 0
70+
else None
71+
)
6772
while not acc.is_full():
68-
if linger_secs > 0:
69-
record = await asyncio.wait_for(anext(aiter), timeout=linger_secs)
73+
if deadline is not None:
74+
remaining = deadline - asyncio.get_event_loop().time()
75+
if remaining <= 0:
76+
break
77+
record = await asyncio.wait_for(anext(aiter), timeout=remaining)
7078
else:
7179
record = await anext(aiter)
7280
acc.add(record)

0 commit comments

Comments
 (0)