cv отлично работает с коро. без коро он действительно не очень полезен
Coro тут ортогонален,
в доке к AnyEvent вполне хорошо описано:
Since condition variables are the most complex part of the AnyEvent API, here are some different mental models of what they are - pick the ones you can connect to:
- Condition variables are like callbacks - you can call them (and pass them instead of callbacks). Unlike callbacks however, you can also wait for them to be called.
- Condition variables are signals - one side can emit or send them, the other side can wait for them, or install a handler that is called when the signal fires.
- Condition variables are like "Merge Points" - points in your program where you merge multiple independent results/control flows into one.
- Condition variables represent a transaction - functions that start some kind of transaction can return them, leaving the caller the choice between waiting in a blocking fashion, or setting a callback.
- Condition variables represent future values, or promises to deliver some result, long before the result is available.