Subject race condition in event conduit loop
Author Hamish Moffatt
Further to last week's email about looping on events, I restructured my
code and I no longer get exceptions.

However I believe there is a flaw in the design of fdb.EventConduit
meaning events can be lost.

wait() blocks on the internal threading.Event, then copies the event
count. It does not clear the event. Because of this, you have to call
flush yourself to reset the Event. If you don't then wait() returns
immediately (the event is still set).

However in between calling wait() and calling flush(), you can lose
events. There needs to be a way to reset the Event without resetting the
counters. Or wait() should do that.