master: cleaner shutdown

This commit is contained in:
Sebastien Bourdeauducq 2015-01-15 11:07:55 +08:00
parent 95ee6a4951
commit 5df8ffe08e
1 changed files with 11 additions and 7 deletions

View File

@ -108,12 +108,16 @@ class Scheduler:
else: else:
self.queue_modified.clear() self.queue_modified.clear()
self.periodic_modified.clear() self.periodic_modified.clear()
done, pend = yield from asyncio.wait( t1 = asyncio.Task(self.queue_modified.wait())
[ t2 = asyncio.Task(self.periodic_modified.wait())
self.queue_modified.wait(), try:
self.periodic_modified.wait() done, pend = yield from asyncio.wait(
], [t1, t2],
timeout=next_periodic, timeout=next_periodic,
return_when=asyncio.FIRST_COMPLETED) return_when=asyncio.FIRST_COMPLETED)
except:
t1.cancel()
t2.cancel()
raise
for t in pend: for t in pend:
t.cancel() t.cancel()