File tree Expand file tree Collapse file tree 3 files changed +72
-0
lines changed
Expand file tree Collapse file tree 3 files changed +72
-0
lines changed Original file line number Diff line number Diff line change 1+ import asyncio
2+
3+ @asyncio .coroutine
4+ def show_remaining ():
5+ remaining = 5
6+ while remaining :
7+ print ('Remaining: ' , remaining )
8+ yield from asyncio .sleep (1 )
9+ remaining -= 1
10+
11+ def main ():
12+ loop = asyncio .get_event_loop ()
13+ try :
14+ loop .run_until_complete (show_remaining ())
15+ finally :
16+ loop .close ()
17+
18+ if __name__ == '__main__' :
19+ main ()
Original file line number Diff line number Diff line change 1+ import asyncio
2+ import sys
3+ import contextlib
4+
5+ @asyncio .coroutine
6+ def show_remaining (dots_task ):
7+ remaining = 5
8+ while remaining :
9+ print ('Remaining: ' , remaining )
10+ sys .stdout .flush ()
11+ yield from asyncio .sleep (1 )
12+ remaining -= 1
13+ dots_task .cancel ()
14+ print ()
15+
16+ @asyncio .coroutine
17+ def dots ():
18+ while True :
19+ print ('.' , sep = '' , end = '' )
20+ sys .stdout .flush ()
21+ yield from asyncio .sleep (.1 )
22+
23+ def main ():
24+ with contextlib .closing (asyncio .get_event_loop ()) as loop :
25+ dots_task = asyncio .Task (dots ())
26+ coros = [show_remaining (dots_task ), dots_task ]
27+ loop .run_until_complete (asyncio .wait (coros ))
28+
29+ if __name__ == '__main__' :
30+ main ()
Original file line number Diff line number Diff line change 1+ import asyncio
2+
3+ def show_remaining (loop ):
4+ if not hasattr (show_remaining , 'remaining' ):
5+ show_remaining .remaining = 5
6+
7+ print ('Remaining: ' , show_remaining .remaining )
8+ show_remaining .remaining -= 1
9+ if show_remaining .remaining :
10+ loop .call_later (1 , show_remaining , loop )
11+ else :
12+ loop .stop ()
13+
14+ def main ():
15+ loop = asyncio .get_event_loop ()
16+ try :
17+ loop .call_soon (show_remaining , loop )
18+ loop .run_forever ()
19+ finally :
20+ loop .close ()
21+
22+ if __name__ == '__main__' :
23+ main ()
You can’t perform that action at this time.
0 commit comments