Using EV_CUSTOM for custom events

Marc Lehmann schmorp at schmorp.de
Sat Apr 28 14:03:01 CEST 2012


On Fri, Apr 27, 2012 at 07:09:29PM +0400, Konstantin Osipov <kostja.osipov at gmail.com> wrote:
> Currently we use ev_async for that, but it involves writing
> into a pipe, and is thus slower than I would like it to be.

It only involves a pipe if you run on non-linux kernels (or use a very old
system), and only if it happens rarely. Only the first async wakeup in an
iteration involves messing with pipes (or an eventfd).

> Hence I was looking for ev_signal and EV_CUSTOM event type 
> as a replacement. 

Signals are likely far slower than even a pipe read and write (last i
timed it, handling a signal took >3000 cycles on my box, and an event fd
read+write was around 2200 cycles), and in addition, ev_signal uses the
exactly the same mechanism as ev_async, so it will probably take more than
twice the time.

-- 
                The choice of a       Deliantra, the free code+content MORPG
      -----==-     _GNU_              http://www.deliantra.net
      ----==-- _       generation
      ---==---(_)__  __ ____  __      Marc Lehmann
      --==---/ / _ \/ // /\ \/ /      schmorp at schmorp.de
      -=====/_/_//_/\_,_/ /_/\_\



More information about the libev mailing list