Replace IAsyncEventProcessor with IQueueingEventProcessor
All threads resolved!
All threads resolved!
Compare changes
After internal tests of the IAsyncEventProcessor
approach (see !878 (merged)) in LHCb (see lhcb/LHCb!1939 (merged)), it turned out that an interface based on promises and futures it not adequate to the Gaudi event loop, so we decided to replace it with a queue based interface (see LBCOMP-21).
The new interface IQueueingEventProcessor
is simple:
void push(EventContext&&)
std::optional<std::tuple<StatusCode, EventContext>> pop()
bool empty() const
true
if there's something in the system (either events being processed or results ready to be popped)