Exemple #1
0
 def add_three(value):
     nonlocal a
     yield tap.Receive('key')
     a += 5
     yield tap.Receive('key')
     a += 5
     yield tap.Receive('key')
     a += 5
     return 10
 def acquire(x, to_cancel):
     yield tap.Receive(str(x))
     release = yield lock.Acquire()
     nonlocal a
     a += 5
     yield tap.Sequence([
         tap.Receive(str(x)),
         tap.Sequence([
             tap.Cancel(to_cancel),
             release,
         ]) if to_cancel is not None else release
     ])
 def waits():
     yield tap.Receive("msg")
     nonlocal a
     a += 1
     release = yield lock.Acquire()
     a += 2
     yield release
Exemple #4
0
 def receiver():
     value = yield tap.Receive('key')
     if value < 10:
         broadcast_strand = yield tap.CallFork(broadcaster, (value + 1, ))
         receive_strand = yield tap.CallFork(receiver)
         yield tap.Join([broadcast_strand, receive_strand])
     raise Exception("too large")
     return value
Exemple #5
0
 def receiver():
     value = yield tap.Receive('key2')
     return value
Exemple #6
0
 def fn():
     task = yield tap.CallFork(wake_and_fork)
     yield tap.Receive("wake")
     yield tap.Cancel(task)
Exemple #7
0
 def wake_and_fork():
     yield tap.Fork(tap.Broadcast("wake"))
     yield tap.Fork(tap.Receive("hmm"))
Exemple #8
0
 def receiver(wait_value):
     value = yield tap.Receive('key', lambda x: x == wait_value)
     return value
 def nowaits():
     release = yield lock.Acquire()
     nonlocal a
     a += 5
     yield tap.Receive("unlock")
     yield release
 def acquire():
     release = yield lock.Acquire()
     yield tap.Receive("unlock")
     yield release