Coro::MakeMaker.3pm

Langue: en

Autres versions - même langue

Version: 2007-05-26 (mandriva - 01/05/08)

Section: 3 (Bibliothèques de fonctions)

NAME

Coro::MakeMaker - MakeMaker glue for the C-level Coro API

SYNOPSIS

This allows you to control coroutines from C level.

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 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

  /* perl-related */
  #define TRANSFER_SAVE_DEFAV      /* save @_ */
  #define TRANSFER_SAVE_DEFSV      /* save $_ */
  #define TRANSFER_SAVE_ERRSV      /* save $@ */
 
  #define TRANSFER_SAVE_ALL        ( TRANSFER_SAVE_DEFAV \
                                   | TRANSFER_SAVE_DEFSV \
                                   | TRANSFER_SAVE_ERRSV)
 
  #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_IS_READY(coro)      /* like $coro->is_ready */
  #define CORO_NREADY              /* # of procs in ready queue */
  #define CORO_CURRENT             /* returns $Coro::current */