Hi folks

I successfully updated our libevent integration in Open MPI, but have 
encountered a problem with one use-case that used to work and now doesn't. 
Before proceeding to devise a fix, I just wanted to confirm that I accurately 
understand the issue.

The problem arises from this scenario:

1. we receive a command via a message that we receive in a file descriptor 
event. We "push" the command message into a timer event (duration zero time) to 
help break a threading issue, and then return from the file descriptor event.

2. the event library is called with LOOP_ONCE, causing the timer event to fire.

3. from within the timer event, the command causes us to execute a procedure 
that results in us having to wait for another event to occur. We "block" in 
that position, running a loop that includes a call to progress the event 
library (i.e., a call to event_loop(LOOP_ONCE)).

This last step used to work just fine, yet now yields the following warning:

warn] event_base_loop: reentrant invocation.  Only one event_base_loop can run 
on each event_base at once.: Resource temporarily unavailable

and no progression of the event library occurs.

I can see a few ways around this problem, but all involve considerable code 
rewrite. Before I do so, I just wanted to confirm my understanding that this 
behavior changed (i.e., recursion is no longer allowed), and see if any 
alternative approaches to revising such codes are recommended.

Thanks
Ralph

***********************************************************************
To unsubscribe, send an e-mail to majord...@freehaven.net with
unsubscribe libevent-users    in the body.

Reply via email to