roc-toolkit icon indicating copy to clipboard operation
roc-toolkit copied to clipboard

Add StateTracker::wait_state() and converted linux semaphore timed wait into monotonic clock domain

Open Flw5469 opened this issue 7 months ago • 2 comments

Implement #749 based on #769. Fix according to #795 so the above implementation works

  1. Make the Waiting Threads waiting using condition variables according to https://github.com/roc-streaming/roc-toolkit/issues/749#issuecomment-2255804185
  2. According to https://github.com/roc-streaming/roc-toolkit/pull/797#issuecomment-2615079232, added compile time check in SConstruct for whether sem_clockedwait exist, set the clock of timedwait in POSIX platforms into CLOCK_MONOTONIC domain. Document of checkFunc can be found at https://scons.org/doc/2.3.1/HTML/scons-api/SCons.Conftest-pysrc.html#CheckFunc
  3. Added simple test cases of state_tracker's timeout and blocking.
  4. Added simple test case of POSIX semaphore's timeout.

Flw5469 avatar May 21 '25 12:05 Flw5469

:robot: Welcome! Thanks for your interest in contributing to the project!

Here is a short check-list to help you get started:

Creating pull request

  • Target PR to develop branch.
  • Include link to related issue in PR description.
  • Ensure all CI checks pass.

Code review

  • Mark PR as draft until it's ready. When ready, undraft and request review.
  • Don't resolve discussions by yourself, instead leave a comment or thumbs up.
  • Re-request review after addressing all discussions.

Refer to contribution guidelines for futher details.

rocstreaming-bot avatar May 21 '25 12:05 rocstreaming-bot

:robot: Pull request is currently unmergeable due to conflicts. Please rebase on up-to-date upstream branch, resolve merge conflicts, and force-push to pull request's branch. Remember to use rebase with force-push instead of a regular merge.

rocstreaming-bot avatar Jun 05 '25 16:06 rocstreaming-bot