26 lines
573 B
Python
26 lines
573 B
Python
|
|
import threading
|
|
|
|
AsyncComplete = object()
|
|
|
|
class Counter(object):
|
|
def __init__(self, rec, args):
|
|
self.nextval = None
|
|
self.timer = None
|
|
def detach(self, rec):
|
|
if self.timer:
|
|
self.timer.cancel()
|
|
|
|
def process(self, rec, reason):
|
|
if reason is AsyncComplete:
|
|
rec.VAL = self.nextval
|
|
|
|
else:
|
|
self.nextval = rec.VAL+1
|
|
self.timer = threading.Timer(0.2, rec.asyncFinish, kwargs={'reason':AsyncComplete})
|
|
rec.asyncStart()
|
|
self.timer.start()
|
|
|
|
|
|
build = Counter
|