Coro::MakeMaker - MakeMaker glue for the C-level Coro API
This allows you to control coroutines from C level.
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).
Makefile.PL
xs
c
When you hook in at the C-level you 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.
perl
Coro
use Coro::MakeMaker qw(coro_args); # ... set up %args ... WriteMakefile(coro_args(%args));
#include "CoroAPI.h" BOOT: I_CORO_API("YourModule");
/* perl-related */ #define TRANSFER_SAVE_DEFAV /* save @_ */ #define TRANSFER_SAVE_DEFSV /* save $_ */ #define TRANSFER_SAVE_ERRSV /* save $@ */ /* c-related */ #define TRANSFER_SAVE_CCTXT /* save C context (stack) */ #define TRANSFER_LAZY_STACK /* try to allocate stacks lazily */ #define TRANSFER_SAVE_ALL (TRANSFER_SAVE_DEFAV | TRANSFER_SAVE_DEFSV \ | TRANSFER_SAVE_ERRSV | TRANSFER_SAVE_CCTXT) #define CORO_TRANSFER(prev,next,flags) /* transfer from prev to next */ #define CORO_SCHEDULE /* like Coro::schedule */ #define CORO_CEDE /* like Coro::cede */ #define CORO_READY(coro) /* like $coro->ready */ #define CORO_NREADY /* # of procs in runqueue */ #define CORO_CURRENT /* returns $Coro::current */
To install Coro, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Coro
CPAN shell
perl -MCPAN -e shell install Coro
For more information on module installation, please visit the detailed CPAN module installation guide.