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