Skip to content

Commit e00e44f

Browse files
committed
Fix buffer_updated race condition with read
1 parent 77389e4 commit e00e44f

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

pymongo/network_layer.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -599,12 +599,11 @@ def buffer_updated(self, nbytes: int) -> None:
599599
bytearray(self._body_length - (self._length + nbytes) + 1024)
600600
)
601601
self._length += nbytes
602-
if (
603-
self._length + self._overflow_length >= self._body_length
604-
and self._pending_messages
605-
and not self._pending_messages[0].done()
606-
):
607-
done = self._pending_messages.popleft()
602+
if self._length + self._overflow_length >= self._body_length:
603+
if self._pending_messages:
604+
done = self._pending_messages.popleft()
605+
else:
606+
done = asyncio.get_event_loop().create_future()
608607
done.set_result((self._start, self._body_length))
609608
self._done_messages.append(done)
610609
if self._length > self._body_length:

0 commit comments

Comments
 (0)