roc-toolkit
roc-toolkit copied to clipboard
Add StateTracker::wait_state() and converted linux semaphore timed wait into monotonic clock domain
Implement #749 based on #769. Fix according to #795 so the above implementation works
- Make the Waiting Threads waiting using condition variables according to https://github.com/roc-streaming/roc-toolkit/issues/749#issuecomment-2255804185
- 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
- Added simple test cases of state_tracker's timeout and blocking.
- Added simple test case of POSIX semaphore's timeout.
: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
developbranch. - 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.
: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.