Busy looping when there are no active watchers
Marc Lehmann
schmorp at schmorp.de
Thu Jul 5 01:28:19 CEST 2012
On Wed, Jul 04, 2012 at 09:37:54PM +0000, doug at hcsw.org wrote:
> Hi,
>
> I've noticed that if there are no active watchers, waiting on a
> condition variable busy loops with AnyEvent (only tried it with
> AnyEvent 7.01 and EV backend):
Yes, when your program deadlocks, this happens with some event loops.
> I'm not saying I think this behaviour is wrong since a program
> where there are no active watchers is probably broken in some
> other way, I'm just wondering why the busy looping happens in
> this case. I kind of thought it would "sleep forever".
With EV, the reason it happens is that EV::loop returns when there are no
active watchers, and AnyEvent just calls it until the condition becomes
true.
> Sorry if I missed this in the documentation.
The reason why it happens is not documented for each event loop, but
AnyEvent::FAQ generally talks about "Why do some backends use a lot of CPU
in "AE::cv->recv"?".
--
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 anyevent
mailing list