[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [Libevent-users] using event_base_loop withy timer events



The short example is provided here :Âhttps://gist.github.com/romange/6d1d5c51e7dd8054fbf8
The version I am using is version 2.0.21-stable

When line 16 is commented out (#define EVENT_FLAG 0) the bug is reproduced. Â

for the 'good' version you should get output:

version 2.0.21-stable
18Â

and in the problematic version the counter is 1.


On Thu, Oct 22, 2015 at 7:34 PM, Azat Khuzhin <a3at.mail@xxxxxxxxx> wrote:
On Thu, Oct 22, 2015 at 07:02:53PM +0300, Roman Gershman wrote:
> Hi,
> my ebase thread does the following loop
>
> while ((res = event_base_loop(ebase_, EVLOOP_ONCE)) == 1) {
> }
>
>
> and the other (main) adds timer event that runs every millisecond. It adds
> the event *after* the ebase thread calls event_base_loop.
>
> event* ev = event_new(base(), -1, EV_PERSIST | EV_TIMEOUT, &PeriodicCb,
> data);
> CHECK_EQ(0, event_add(ev, &tv));
>
>
> I see that this event does not run. If I change flags from EVLOOP_ONCE to 0
> it does run well.
> How should I make event base to realize that the new event is added?

Can you please write a sample to reproduce this (~100lines)?

Also can you dump all events after you added timer *and* after
event_base_loop(base, EVLOOP_ONCE) returned, you can use something like
this:
 event_base_dump_events(base, stderr);

And which version of libevent do you use?
***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users  in the body.



--
Roman GershmanÂ|ÂArchitectÂ|ÂUbimo
+972-542-451046Â|Âroman@xxxxxxxxxÂ|ÂLinkedInÂ|Â@ubimoincÂ|Âwww.ubimo.com