If you haven't seen it, this is a great read on
coroutines (uses, advantages, disadvantages, design
of systems, integration with threading systems, reification,
real-world examples in network protocols like SSH ...)
by the brilliant Simon Tatham of PuTTY fame.
Warning: it is a long essay!