Guest User

LoopingCall Counters

a guest
Jun 25th, 2011
697
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.71 KB | None | 0 0
  1. from twisted.internet.task import LoopingCall
  2. from twisted.internet import reactor
  3.  
  4. counters = [3, 3, 3, 3]
  5.  
  6. def make_fun(index):
  7.     def decrement():
  8.         global counters
  9.         counters[index] -= 1
  10.         print "LoopCall # {} down to {}".format(index, counters[index])
  11.         if not counters[index]:
  12.             counters[3] -= 1
  13.             print "LoopCall # ", index, " died!"
  14.             if not counters[3]:
  15.                 print "Stopping reactor..."
  16.                 global reactor
  17.                 reactor.stop()
  18.             lcs[index].stop()
  19.     return decrement
  20.  
  21. lcs = [LoopingCall(make_fun(i)) for i in range(3)]
  22. for i, lc in enumerate(lcs):
  23.     lc.start(i)
  24.  
  25. reactor.run()
  26. print "Stop!"
Advertisement
Add Comment
Please, Sign In to add comment