Skip to content
Snippets Groups Projects

Timer vs Unblocking Race Simplification

Closed Matthew James Cameron May requested to merge mjcmay/libfibre:timer-improvements into master

Move the responsibility of figuring out who won the resume race to after Fibre resumption.

Caveats

  • Since resume may now be called more than once, changed the runState logic to ensure that resume() is idempotent.
  • To avoid iterator invalidation issues if "erase" is called after the timer fires, change the timer queue to store BaseTimer pointers
  • TimerQueue::erase() now blocks if the timer is currently firing to avoid segfault issues.
  • Use doubly linked list (intrusive) instead of std::list for fireList so that timers can be erased from it

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
Please register or sign in to reply
Loading