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


EV documentation  | view source Contained in the EV distribution.

Index


NAME

Top

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

SYNOPSIS

Top

This allows you to access some libevent functionality from other perl modules.

DESCRIPTION

Top

For optimal performance, hook into EV at the C-level. You'll need to make changes to your Makefile.PL and add code to your xs / c file(s).

HOW TO

Top

Makefile.PL

  use EV::MakeMaker qw(ev_args);

  # ... set up %args ...

  WriteMakefile (ev_args (%args));

XS

  #include "EVAPI.h"

  BOOT:
    I_EV_API ("YourModule");

API

Top

See the EVAPI.h header, which you should include instead of ev.h.

In short, all the functions and macros from ev.h should work, except that the trailing underscore macros (EV_A_, EV_DEFAULT_) are not available (except EV_P_ :).

Multiplicity is enabled.

The data member in each watcher is of type SV * and not void * (this might change at some point).

EXAMPLE

Top

The EV::Glib, EV::ADNS and Glib::EV modules all give nice examples on how to use this module.

Here are some .xs fragments taken from EV::ADNS that should get you going:

  #include "EVAPI.h"

  static ev_prepare pw;
  static ev_idle iw;

  static void
  idle_cb (EV_P_ ev_idle *w, int revents)
  {
    ev_idle_stop (EV_A, w);
  }

  MODULE = ...

  BOOT:
  {
    I_EV_API ("EV::ADNS");
    ev_prepare_init (&pw, prepare_cb);
    ev_init (&iw, idle_cb); ev_set_priority (&iw, EV_MINPRI);
    ev_idle_start (EV_DEFAULT, &iw);
  }


EV documentation  | view source Contained in the EV distribution.