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

Re: [Libevent-users] Signals and priority queues



On Jan 6, 2012, at 7:02 AM, Nick Mathewson wrote:

> On Fri, Jan 6, 2012 at 7:24 AM, Ralph Castain <rhc@xxxxxxxxxxxx> wrote:
>> If it helps, I have now confirmed that I *can* activate the t2 event during the t1func callback in my example *provided* I called event_assign on it prior to entering event_base_loop. It is also okay for me to event_add the t2 event during the callback - I am simply not allowed to event_assign *and* activate it there.
>> 
>> However, it is okay to assign the event during the callback so long as I don't activate it until after I return.
>> 
>> Seems a little strange to me - is this the intended behavior?
> 
> Well, no, of course not.
> 
> Looking at your code, the only weird thing I see at first glance is
> that you are calling event_add() on t1 and t2 -- you shouldn't be
> doing that.  event_add() is only for events that you want libevent to
> poll or wait for, but waiting for EV_WRITE on fd -1 isn't
> well-defined.  If you want to activate them yourself with
> event_active(), there's no need to event_add() them.
> 
> That shouldn't be causing this problem, though, I think.  (Unless it is?)

BINGO! Indeed, event_add was the source of the trouble. My bad for not understanding when event_add was required.

> 
> I just tried your test programs, though, and they worked okay for me
> on OSX and linux, using Libevent 2.0.13-stable and Libevent
> 2.0.14-stable.
> 
> What platform are you running your tests on?  Have you tried other
> platforms too?  Does the outcome depend on which libevent backend is
> in use?  Have you tried this with an unpatched Libevent, just to
> confirm that it's not introduced by any openmpi patches?

FWICT, it is a corruption issue, and so it does indeed depend on platform and backend - just a question of what memory location gets trounced.

FWIW, I was conducting my tests on OSX and linux as well, using OMPI with 2.0.13 underneath. I think the difference in our results is due to the location issue - I suspect that you might also hit a problem if we continued chaining events long enough, but I haven't confirmed it.

Also fwiw: the OMPI changes are confined to configuration/Makefile areas - we actually don't fiddle with the libevent code itself other than a couple of places where we test for stdbool.h before including it.

Thanks Nick!
Ralph

> 
> yrs,
> -- 
> Nick
> ***********************************************************************
> To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
> unsubscribe libevent-users    in the body.

***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users    in the body.