Examples: close the event loop at exit

This commit is contained in:
Victor Stinner
2014-07-02 01:26:08 +02:00
parent 6498249322
commit 7cf3851dc3
10 changed files with 23 additions and 4 deletions

View File

@@ -238,7 +238,10 @@ def main():
svr = loop.run_until_complete(task) svr = loop.run_until_complete(task)
for sock in svr.sockets: for sock in svr.sockets:
logging.info('socket %s', sock.getsockname()) logging.info('socket %s', sock.getsockname())
loop.run_forever() try:
loop.run_forever()
finally:
loop.close()
if __name__ == '__main__': if __name__ == '__main__':

View File

@@ -17,3 +17,4 @@ def echo_client():
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
loop.run_until_complete(echo_client()) loop.run_until_complete(echo_client())
loop.close()

View File

@@ -14,4 +14,7 @@ def handle_connection(reader, writer):
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
loop.run_until_complete(echo_server()) loop.run_until_complete(echo_server())
loop.run_forever() try:
loop.run_forever()
finally:
loop.close()

View File

@@ -11,4 +11,7 @@ def print_and_repeat(loop):
if __name__ == '__main__': if __name__ == '__main__':
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
print_and_repeat(loop) print_and_repeat(loop)
loop.run_forever() try:
loop.run_forever()
finally:
loop.close()

View File

@@ -12,4 +12,7 @@ def greet_every_two_seconds():
if __name__ == '__main__': if __name__ == '__main__':
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
loop.run_until_complete(greet_every_two_seconds()) try:
loop.run_until_complete(greet_every_two_seconds())
finally:
loop.close()

View File

@@ -47,3 +47,4 @@ loop = asyncio.get_event_loop()
loop.run_until_complete(cat(loop)) loop.run_until_complete(cat(loop))
loop.run_until_complete(ls(loop)) loop.run_until_complete(ls(loop))
loop.run_until_complete(test_call("bash", "-c", "sleep 3", timeout=1.0)) loop.run_until_complete(test_call("bash", "-c", "sleep 3", timeout=1.0))
loop.close()

View File

@@ -33,6 +33,7 @@ def doit():
finally: finally:
for t in Task.all_tasks(): for t in Task.all_tasks():
t.print_stack() t.print_stack()
l.close()
def main(): def main():

View File

@@ -30,3 +30,4 @@ def task():
print("read = %r" % data.decode()) print("read = %r" % data.decode())
loop.run_until_complete(task()) loop.run_until_complete(task())
loop.close()

View File

@@ -29,5 +29,7 @@ def task():
stdout, stderr = yield from proc.communicate() stdout, stderr = yield from proc.communicate()
print("stdout = %r" % stdout.decode()) print("stdout = %r" % stdout.decode())
pipe.close()
loop.run_until_complete(task()) loop.run_until_complete(task())
loop.close()

View File

@@ -80,6 +80,7 @@ def main():
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
loop.run_until_complete(start( loop.run_until_complete(start(
'sleep 2; wc', input=[b'foo bar baz\n'*300 for i in range(100)])) 'sleep 2; wc', input=[b'foo bar baz\n'*300 for i in range(100)]))
loop.close()
if __name__ == '__main__': if __name__ == '__main__':