I don't really understand what you want to do. If you want a specific coroutine to run to completion, use $coro->join(). If you want to run any coroutine until no more work is to be done, use Coro::schedule. If you want to start "any coroutine other than me", use cede_notself. In any case, you need to ->join all coroutines that you have spawned at some time earlier in the program, because once the main coroutine ends, no other coroutines will be called anymore.
If you can describe more closely why and how you want to influence the call order, maybe we can find some way. The easiest solution would be if cede took an optional parameter giving the next coroutine to run, but I'm not sure there is a use case for that.
Update: I think the (undocumented) $coro->transfer( $target ) method is what you want to transfer control to another, specified coroutine.
In reply to Re: Coro: running a specific coroutine
by Corion
in thread Coro: running a specific coroutine
by moritz
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |