ev_async watcher's callback is never triggering on ev_async_send()

Marc Lehmann schmorp at schmorp.de
Sun Jun 30 15:41:37 CEST 2013

On Sat, Jun 29, 2013 at 07:35:00PM -0700, trafdev <trafdev at mail.ru> wrote:
> but looks like loop may have multiple watchers of same type as well
> as single watcher may be assigned to multiple loops.

Watchers can only ever be active in one loop at a time. When a watcher
is stopped, though, it's completely detached from the loop, so you could
then assign it to another loop.

> That explains why ev_async_send requires both loop and watcher, this was
> surprise for me...

Yes, it's not so common in event loops, but since libev tries to go for
small size, it doesn't store the loop inside the watcher unless necessary.

                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