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. Hamish