MakeMaker(3pm)
NAME
Coro::MakeMaker - MakeMaker glue for the XS-level Coro API
SYNOPSIS
This allows you to control coroutines from C/XS.
DESCRIPTION
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).
WARNING
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.
HOW TO
- Makefile.PL
- use Coro::MakeMaker qw(coro_args);
- # ... set up %args ...
- WriteMakefile (coro_args (%args));
- XS
- #include "CoroAPI.h"
- BOOT:
I_CORO_API ("YourModule");
- API
- This is just a small overview - read the Coro/CoroAPI.h header file in
the distribution, and check the examples in EV/ and Event/*, or as a
more real-world example, the Deliantra game server (which uses
Coro::MakeMaker).
#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 */
#define CORO_THROW /* exception pending? */
#define CORO_READYHOOK /* hook for event libs, see Coro::EV */#define CORO_SV_STATE(coro) /* returns the internal struct coro * */ #define CORO_EXECUTE_SLF(cv,init,ax) /* execute a schedule-like function */ #define CORO_EXECUTE_SLF_XS(init) /* SLF in XS, see e.g. Coro::EV */