diff --git a/emper/sleep_strategy/SemaphoreWorkerSleepStrategy.hpp b/emper/sleep_strategy/SemaphoreWorkerSleepStrategy.hpp index 5bba08c568d17c413960b96bcae0a2abb937f743..9523826d0402065c4135120feb8bf90e8dc4c520 100644 --- a/emper/sleep_strategy/SemaphoreWorkerSleepStrategy.hpp +++ b/emper/sleep_strategy/SemaphoreWorkerSleepStrategy.hpp @@ -135,24 +135,24 @@ class AbstractSemaphoreWorkerSleepStrategy [[nodiscard]] inline auto mustNotify() -> bool { /* On external work we always increment the semaphore unless we observe * that its value is > workerCount. - * If we observe semValue > workerCount we are ensured that some worker will iterate - * its dispatchLoop again and must observe the new work. - - * For work from within emper we could skip wakeup if we observe no one sleeping. + * If we observe semValue > workerCount we know that some worker will iterate + * its dispatchLoop() again and hence will observe the new work. + * + * For work from within EMPER, we could skip wakeup() if we observe no one sleeping. * This is sound because wakeupSleepingWorkers() is called from a active - * worker which will observe its own new work in its next dispatchLoop before + * worker which will observe its own new work in its next dispatchLoop() before * going to sleep. - * BUT this supposed not harmful race may not be harmful for guarantying - * progress but it is harmfull for latency. + * BUT this supposed not harmful race may not be harmful for guaranteeing + * progress but it is harmful for latency. * Inserting new work in the system races with workers about to sleep * actually able to execute the work in a timely manner. - - * The overhead of increasing the semaphore "to" much are unnessesary atomic + * + * The overhead of increasing the semaphore "to" much are unnecessary atomic * operations on global state. This overhead was not measured in contrast to * the harm caused to latency by beeing parsimonious when using the semaphore. - - * Note that sem_getvalue() is allowed to return 0 if there are - * waiting workers, hence we need to set the threshold atleast to + * + * Note that sem_getValue() is allowed to return 0 if there are + * waiting workers, hence we need to set the threshold at least to * 0. This has the disadvantage that we will perform one * unnecessary sem_post. If we are sure the wakeupSem * implementation does not return 0 with waiters,