Coro::MakeMaker - MakeMaker glue for the XS-level Coro API
This allows you to control coroutines from C/XS.
For optimal performance, hook into Coro at the C-level. You'll need to
make changes to your Makefile.PL
and add code to your xs
/ c
file(s).
When you hook in at the C-level you can get a huge performance gain,
but you also reduce the chances that your code will work unmodified with
newer versions of perl
or Coro
. This may or may not be a problem.
Just be aware, and set your expectations accordingly.
use Coro::MakeMaker qw(coro_args); # ... set up %args ... WriteMakefile(coro_args(%args));
#include "CoroAPI.h" BOOT: I_CORO_API("YourModule");
#define CORO_TRANSFER(prev,next) /* transfer from prev to next */ #define CORO_SCHEDULE /* like Coro::schedule */ #define CORO_CEDE /* like Coro::cede */ #define CORO_CEDE_NOTSELF /* like Coro::cede_notself */ #define CORO_READY(coro) /* like $coro->ready */ #define CORO_IS_READY(coro) /* like $coro->is_ready */ #define CORO_NREADY /* # of procs in ready queue */ #define CORO_CURRENT /* returns $Coro::current */