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 self
Return 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>