@@ -53,7 +53,7 @@ class AsyncEngine:
5353 "loop" ,
5454 "protocols" ,
5555 "readers" ,
56- "running_event " ,
56+ "running_future " ,
5757 "senders" ,
5858 "zc" ,
5959 )
@@ -69,7 +69,7 @@ def __init__(
6969 self .protocols : list [AsyncListener ] = []
7070 self .readers : list [_WrappedTransport ] = []
7171 self .senders : list [_WrappedTransport ] = []
72- self .running_event : asyncio .Event | None = None
72+ self .running_future : asyncio .Future [ bool | None ] | None = None
7373 self ._listen_socket = listen_socket
7474 self ._respond_sockets = respond_sockets
7575 self ._cleanup_timer : asyncio .TimerHandle | None = None
@@ -81,15 +81,15 @@ def setup(
8181 ) -> None :
8282 """Set up the instance."""
8383 self .loop = loop
84- self .running_event = asyncio . Event ()
84+ self .running_future = loop . create_future ()
8585 self .loop .create_task (self ._async_setup (loop_thread_ready ))
8686
8787 async def _async_setup (self , loop_thread_ready : threading .Event | None ) -> None :
8888 """Set up the instance."""
8989 self ._async_schedule_next_cache_cleanup ()
9090 await self ._async_create_endpoints ()
91- assert self .running_event is not None
92- self .running_event . set ( )
91+ assert self .running_future is not None
92+ self .running_future . set_result ( True )
9393 if loop_thread_ready :
9494 loop_thread_ready .set ()
9595
@@ -142,8 +142,9 @@ async def _async_close(self) -> None:
142142
143143 def _async_shutdown (self ) -> None :
144144 """Shutdown transports and sockets."""
145- assert self .running_event is not None
146- self .running_event .clear ()
145+ assert self .running_future is not None
146+ assert self .loop is not None
147+ self .running_future = self .loop .create_future ()
147148 for wrapped_transport in itertools .chain (self .senders , self .readers ):
148149 wrapped_transport .transport .close ()
149150
0 commit comments