Class: cogen.core.coroutine.Coroutine
We need a coroutine wrapper for generators and function alike because
we want to run functions that don't return generators just like a
coroutine.
Methods
add_waiter (self, coro)
finalize (self)
handle_error (self)
process (self, sched, coro)
remove_waiter (self, coro)
run_op (self, op)
Handle the operation:
- if coro is in STATE_RUNNING, send or throw the given op
- if coro is in STATE_NEED_INIT, call the init function and if it
doesn't return a generator, set STATE_COMPLETED and set the resultto whatever the function returned.
- if StopIteration is raised, set STATE_COMPLETED and return self.
- if any other exception is raised, set STATE_FAILED, handle error
or send it to the caller, return selfReturn self is used as a optimization. Coroutine is also a Operation which handles it's own completion (resuming the caller and the waiters).
Attributes
STATE_COMPLETED
Value of STATE_COMPLETED
2
STATE_FAILED
Value of STATE_FAILED
3
STATE_FINALIZED
Value of STATE_FINALIZED
4
STATE_NEED_INIT
Value of STATE_NEED_INIT
0
STATE_RUNNING
Value of STATE_RUNNING
1
caller
Value of caller
<member 'caller' of 'Coroutine' objects>
coro
Value of coro
<member 'coro' of 'Coroutine' objects>
exception
Value of exception
<member 'exception' of 'Coroutine' objects>
f_args
Value of f_args
<member 'f_args' of 'Coroutine' objects>
f_kws
Value of f_kws
<member 'f_kws' of 'Coroutine' objects>
name
Value of name
<member 'name' of 'Coroutine' objects>
prio
Value of prio
<member 'prio' of 'Coroutine' objects>
result
Value of result
<member 'result' of 'Coroutine' objects>
running
Value of running
<property object at 0x00D43580>
state
Value of state
<member 'state' of 'Coroutine' objects>
waiters
Value of waiters
<member 'waiters' of 'Coroutine' objects>