- Избежание избыточных блокировок и избыточных ожиданий блокировок.
- Триггер не пытается взять блокировку над процессом лишний раз, если процесс выполняется.
(Информация о выполнении процесса считывается из Wakeup state (без взятия блокировки процесса). Если процесс выполняется, то сигнал считается доставленным и никаких обновлений не требуется). - Гарантированная доставка сигнала от триггера до процесса (сигнал не будет потерян) и процесс будет пробужден и продолжит выполнение (Синхронизация проверки условия Wakeup condition, гарантия что сигнал не будет утерян).
- Конкуренция между триггерами и процессом.
Решает 2 задачи:
1) Информация о выполнении процесса считывается из Wakeup state (без взятия блокировки процесса). Если процесс выполняется, то сигнал считается доставленным и никаких обновлений не требуется.
2) Синхронизация проверки условия Wakeup condition, гарантия что сигнал не будет утерян.
В конце сессии обработки процесса Wakeup state блокируется и только после этого проверяется условие наличие новых сигналов Wakeup condition, это гарантирует что ни один поступивший сигнал не будет утерян.
Такой подход позволяет минимизировать ожидание на блокировках.