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

#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 */