def coroutine(func):
def start(*args, **kwargs):<EOL><INDENT>cr = func(*args, **kwargs)<EOL>cr.next()<EOL>return cr<EOL><DEDENT>return start<EOL>
Initializes a coroutine -- essentially it just takes a
generator function and calls generator.next() to get
things going.