Skip to content
Snippets Groups Projects

Replace IAsyncEventProcessor with IQueueingEventProcessor

Merged Marco Clemencic requested to merge clemenci/Gaudi:async-with-queue into master
All threads resolved!

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&&)
    • possibly blocking function to submit a new event for processing
  • std::optional<std::tuple<StatusCode, EventContext>> pop()
    • non-blocking function to get the result of a processed event (the order may not match that of pushed events)
  • bool empty() const
    • returns true if there's something in the system (either events being processed or results ready to be popped)
Edited by Marco Clemencic

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • added 1 commit

    • c024f896 - Apply suggestion to GaudiExamples/src/QueueingEventProcessor/QueueingEventLoopMgr.cpp

    Compare with previous version

  • Marco Clemencic added 31 commits

    added 31 commits

    • c024f896...c3048316 - 24 commits from branch gaudi:master
    • 1b6de27b - Add micro benchmark of asynchronous scheduling interfaces
    • ad1f3921 - Add IQueueingEventProcessor interface and examples
    • 41ce0a1c - Reduced the IQueueingEventProcessor interface to the minimum
    • b04f7416 - Remove IAsyncEventLoopMgr
    • 069d0735 - Revert "Add micro benchmark of asynchronous scheduling interfaces"
    • 34b4feed - Apply suggestion to GaudiExamples/src/QueueingEventProcessor/QueueingEventLoopMgr.cpp
    • 76b92f09 - Replace CPP macros with templated member function

    Compare with previous version

  • Marco Clemencic resolved all threads

    resolved all threads

  • added 1 commit

    • 7d34a571 - Replace CPP macros with templated member function

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • Sebastien Ponce approved this merge request

    approved this merge request

  • Marco Clemencic mentioned in commit 8a3b1102

    mentioned in commit 8a3b1102

  • mentioned in issue lhcb/LHCb#152

  • Please register or sign in to reply
    Loading