On Sun, Jun 24, 2012 at 05:14:41PM +0400, Vladimir Afinello <[email protected]> wrote: > > I am not sure what that means, but again, if the watchers are stopped, > > then the loop will no longer access them. > > I mean, when I receive some data from one client in it's watcher receive > callback - I need to pass this watcher and 5 other watchers from this > thread/loop to another. > And I perform stop() on all of them being in that receive callback > function. So, does these 5+1 stop()'s affect the thread loop immediatelly?
Yes, as I said, the loop will not touch watchers once stopped, regardless of when you stop them. > If not - I have no idea why these watchers remain active when I start them > in another thread. Me neither, but the assert can only trigger on a started watcher. On Sun, Jun 24, 2012 at 05:44:40PM +0400, Vladimir Afinello <[email protected]> wrote: > I also haven't found the watcher.set(struct ev_loop*) implementation in the It's in ev++.h, first set method in the file. > Shouldn't it throw an exception on set() method if the watcher was pending > at that moment? Calling that method on an active watcher is always a bug, not an exceptional condition. And in this case, the assert did catch the bug. -- The choice of a Deliantra, the free code+content MORPG -----==- _GNU_ http://www.deliantra.net ----==-- _ generation ---==---(_)__ __ ____ __ Marc Lehmann --==---/ / _ \/ // /\ \/ / [email protected] -=====/_/_//_/\_,_/ /_/\_\ _______________________________________________ libev mailing list [email protected] http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev
