Cancel pending tasks although they are done
This commit is contained in:
parent
458cc0f5e7
commit
40f48e3b95
@ -100,6 +100,22 @@ class Server:
|
|||||||
self._working = False # Reset peer_is_sender
|
self._working = False # Reset peer_is_sender
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
loop = asyncio.get_event_loop()
|
||||||
|
logging.info("Starting file bridging server...")
|
||||||
|
try:
|
||||||
|
loop.run_until_complete(self.run_server())
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
logging.info("Stopping...")
|
||||||
|
# Cancel connection tasks (they should be done but are pending)
|
||||||
|
for task in asyncio.all_tasks(loop):
|
||||||
|
task.cancel()
|
||||||
|
loop.run_until_complete(
|
||||||
|
self.server.wait_closed()
|
||||||
|
)
|
||||||
|
loop.close()
|
||||||
|
logging.info("Stooped.")
|
||||||
|
|
||||||
async def run_server(self):
|
async def run_server(self):
|
||||||
self._server = await asyncio.start_server(
|
self._server = await asyncio.start_server(
|
||||||
client_connected_cb=self.connect,
|
client_connected_cb=self.connect,
|
||||||
@ -174,14 +190,8 @@ if __name__ == '__main__':
|
|||||||
logging.info("Invalid port. Enter a valid port number!")
|
logging.info("Invalid port. Enter a valid port number!")
|
||||||
_port = None
|
_port = None
|
||||||
|
|
||||||
loop = asyncio.get_event_loop()
|
|
||||||
server = Server(
|
server = Server(
|
||||||
host=_host,
|
host=_host,
|
||||||
port=_port,
|
port=_port,
|
||||||
)
|
)
|
||||||
logging.info("Starting file bridging server...")
|
server.run()
|
||||||
try:
|
|
||||||
loop.run_until_complete(server.run_server())
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
logging.info("Stopping...")
|
|
||||||
loop.close()
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user