Remove hackery
This commit is contained in:
parent
12c49bbe75
commit
28ea9ae2f4
@ -93,28 +93,18 @@ class ServerBase(object):
|
|||||||
loop.set_exception_handler(self.on_exception)
|
loop.set_exception_handler(self.on_exception)
|
||||||
|
|
||||||
shutdown_event = asyncio.Event()
|
shutdown_event = asyncio.Event()
|
||||||
try:
|
async with TaskGroup() as group:
|
||||||
async with TaskGroup() as group:
|
server_task = await group.spawn(self.serve(shutdown_event))
|
||||||
server_task = await group.spawn(self.serve(shutdown_event))
|
# Wait for shutdown, log on receipt of the event
|
||||||
# Wait for shutdown, log on receipt of the event
|
await shutdown_event.wait()
|
||||||
await shutdown_event.wait()
|
self.logger.info('shutting down')
|
||||||
self.logger.info('shutting down')
|
server_task.cancel()
|
||||||
server_task.cancel()
|
|
||||||
finally:
|
|
||||||
await loop.shutdown_asyncgens()
|
|
||||||
|
|
||||||
# Prevent some silly logs
|
|
||||||
await asyncio.sleep(0.001)
|
|
||||||
# Finally, work around an apparent asyncio bug that causes log
|
|
||||||
# spew on shutdown for partially opened SSL sockets
|
|
||||||
try:
|
|
||||||
del asyncio.sslproto._SSLProtocolTransport.__del__
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
|
|
||||||
self.logger.info('shutdown complete')
|
self.logger.info('shutdown complete')
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_event_loop()
|
||||||
loop.run_until_complete(self._main(loop))
|
try:
|
||||||
loop.close()
|
loop.run_until_complete(self._main(loop))
|
||||||
|
finally:
|
||||||
|
loop.run_until_complete(loop.shutdown_asyncgens())
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user