@@ -127,16 +127,17 @@ async def check_to_close_session(
127127
128128
129129async def buffered_message_sender (
130+ message_enqueued : asyncio .Semaphore ,
130131 get_ws : Callable [[], WebSocketCommonProtocol | ClientConnection | None ],
131132 websocket_closed_callback : Callable [[], Coroutine [Any , Any , None ]],
132133 get_next_pending : Callable [[], TransportMessage | None ],
133134 commit : Callable [[TransportMessage ], None ],
134135) -> None :
135136 logger .debug ("Entering buffered_message_sender" )
136137 while True :
137- logger . debug ( "buffered_message_sender: LOOP" )
138- sent = False
139- while msg := get_next_pending ():
138+ await message_enqueued . acquire ( )
139+ logger . debug ( "buffered_message_sender: acquired" )
140+ if msg := get_next_pending ():
140141 ws = get_ws ()
141142 logger .debug (
142143 "buffered_message_sender: Dequeued %r to send over %r" ,
@@ -150,7 +151,6 @@ async def buffered_message_sender(
150151 await send_transport_message (msg , ws , websocket_closed_callback )
151152 logger .debug ("buffered_message_sender: committing!" )
152153 commit (msg )
153- sent = True
154154 except WebsocketClosedException as e :
155155 logger .debug (
156156 "Connection closed while sending message %r, waiting for "
@@ -168,8 +168,6 @@ async def buffered_message_sender(
168168 except Exception :
169169 logger .exception ("Error attempting to send buffered messages" )
170170 break
171- if not sent :
172- await asyncio .sleep (0.25 )
173171
174172
175173async def add_msg_to_stream (
0 commit comments