I ran into the problem that I might have many coroutines, and I want to run one specific of them, and after then return to the main coro.
use strict; use warnings; use Coro; my $ca = async { print "coro a\n"; cede; } my $cb = async { print "coro b\n"; cede; } print "In main\n"; cede; print "Back in main\n"; __END__ In main coro b coro a Back in main
Here in main I call cede, but I don't seem to have control which coro should be next, and which one should be called after that.
How can I influence the call order?
I tried to fiddle a bit with priorities, setting the one that I want to call to highest, and main to second highest priority, but it didn't work for me:
# coro definitions of $ca and $cb as above my $main = Coro::current; $main->prio(2); $ca->prio(3); cede; print "In main\n"; __END__ In main
As you can see, no other coro is called ;( Can I somehow tweak the priority system to achieve my goal? or is there an even better way?
Update: I know solved the Problem with Coro::Channel. The result is now on CPAN: Perl6::GatherTake.
In reply to Coro: running a specific coroutine by moritz
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |