add semaphore using futex_waitv(2) supporting notify_specific
The SpuriousFutex2Semaphore is able to notify a specific worker by using two futexes two wait on. One working like a normal semaphore used for global non specific notifications via notify() and notify_many(). And a second one per worker which is based on a SleeperState. To notify a specific worker we change its SleeperState to Notified and call FUTEX_WAKE if needed.
parent
207fba4d
No related branches found
No related tags found
Showing
- .gitlab-ci.yml 10 additions, 0 deletions.gitlab-ci.yml
- emper/lib/meson.build 2 additions, 0 deletionsemper/lib/meson.build
- emper/lib/sync/SpuriousFutex2Semaphore.cpp 78 additions, 0 deletionsemper/lib/sync/SpuriousFutex2Semaphore.cpp
- emper/lib/sync/SpuriousFutex2Semaphore.hpp 105 additions, 0 deletionsemper/lib/sync/SpuriousFutex2Semaphore.hpp
- emper/lib/sync/meson.build 3 additions, 0 deletionsemper/lib/sync/meson.build
- emper/sleep_strategy/SemaphoreWorkerSleepStrategy.hpp 21 additions, 6 deletionsemper/sleep_strategy/SemaphoreWorkerSleepStrategy.hpp
- emper/sleep_strategy/SleeperState.hpp 16 additions, 0 deletionsemper/sleep_strategy/SleeperState.hpp
- meson_options.txt 1 addition, 0 deletionsmeson_options.txt
Loading
Please register or sign in to comment