On 02/03/2010 10:02 PM, Pete Zaitcev wrote:
As it turned out, event_loopbreak() does not awaken the thread that exectutes event_dispatch(), but our code expected that it would. One easily noticeable effect was that there was a noticeable delay between the state transition to DB master and listening on sockets. I knew the mysterious delay existed for a while, but never got around to investigate. For ncld API, I moved the processing of CLD packets to its own thread and suddenly everything else froze. Apparently the existing code only works because of extra packets of CLD protocol. For a fix, dispose of event_loopbreak and use a loopback pipe. Also gone is state_tdb_new. That thing was just disgusting. Notice that we still have one event_loopbreak remaining, because it works correctly thanks to UNIX signal awakening the polling thread. Signed-Off-By: Pete Zaitcev<zaitcev@xxxxxxxxxx>
applied, with a few cosmetic changes (speling correction, use of 'switch') -- To unsubscribe from this list: send the line "unsubscribe hail-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html