33c3b71317
After talking with Brian, we're pretty sure that this is only because really, really old libevent didn't allow bitwise or-ing of the other loop types, because what we really need is (EVLOOP_ONCE | EVLOOP_NONBLOCK). And that's what EVLOOP_ONELOOP did (i.e., we changed the logic of libevent's event.c to let ONELOOP do both ONCE and NONBLOCK things). In the new libevent version, we didn't implement EVLOOP_ONELOOP properly. As a result, and we got hangs in the SM BTL add_procs function. Note that the SM BTL wasn't to blame -- it was purely a side-effect of bad ONELOOP integration (i.e., if you got past the SM BTL add_procs, you may well have hung somewhere else). This commit removes all ONELOOP customizations from event.c and returns it to (almost) its original state from the libevent 2.0.7-rc distribution. Everwhere in the code base where we used ONELOOP, we now use (ONCE | NONBLOCK). This commit was SVN r23957.