diff --git a/async_substrate_interface/async_substrate.py b/async_substrate_interface/async_substrate.py index 0fe3969..105b93a 100644 --- a/async_substrate_interface/async_substrate.py +++ b/async_substrate_interface/async_substrate.py @@ -755,6 +755,7 @@ async def _start_sending(self, ws) -> Exception: try: while True: to_send_ = await self._sending.get() + self._sending.task_done() send_id = to_send_["id"] to_send = json.dumps(to_send_) async with self._lock: @@ -848,7 +849,9 @@ async def retrieve(self, item_id: str) -> Optional[dict]: return res else: try: - return self._received_subscriptions[item_id].get_nowait() + subscription = self._received_subscriptions[item_id].get_nowait() + self._received_subscriptions[item_id].task_done() + return subscription except asyncio.QueueEmpty: pass if self._send_recv_task is not None and self._send_recv_task.done():