File tree Expand file tree Collapse file tree 1 file changed +5
-0
lines changed
Expand file tree Collapse file tree 1 file changed +5
-0
lines changed Original file line number Diff line number Diff line change @@ -818,6 +818,7 @@ def __init__(
818818 self .protocol = None
819819 self .endpoint = None
820820 self .on_connection_terminated = None
821+ self .stop_serving = self .loop .create_future ()
821822 # asyncio future that will be done once server has started
822823 self .serving = asyncio .Future ()
823824 self .factory_parms = {
@@ -841,6 +842,7 @@ async def serve_forever(self):
841842 raise RuntimeError (exc ) from exc
842843 Log .info ("Server(UDP) listening." )
843844 self .serving .set_result (True )
845+ await self .stop_serving
844846 else :
845847 raise RuntimeError (
846848 "Can't call serve_forever on an already running server object"
@@ -854,10 +856,13 @@ async def server_close(self):
854856 """Close server."""
855857 if self .endpoint :
856858 self .endpoint .running = False
859+ if not self .stop_serving .done ():
860+ self .stop_serving .set_result (True )
857861 if self .endpoint is not None and self .endpoint .handler_task is not None :
858862 self .endpoint .handler_task .cancel ()
859863 if self .protocol is not None :
860864 self .protocol .close ()
865+ # TBD await self.protocol.wait_closed()
861866 self .protocol = None
862867
863868
You can’t perform that action at this time.
0 commit comments