INNER CODE UNIT · Python

take

ImFeH2/huddol · core/src/fora/adapters/websocket/server.py:195

    async def take(self) -> OutgoingFrame | None:
        while True:
            with self.lock:
                if self.closed:
                    return None
                if self.items:
                    return self.items.popleft()
                self.available.clear()
            await self.available.wait()

    def release(self, frame: OutgoingFrame) -> None:
        if frame.completion is None:
            with self.lock:
                self.frames -= 1
                self.used -= frame.cost

    async def send(self, connection: web.WebSocketResponse) -> None:
        while (frame := await self.take()) is not None:

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…