Процесс пробуждения в очереди ожидания - PullRequest
2 голосов
/ 29 мая 2011

Я пишу модуль ядра Linux.Существует два процесса A, B и две очереди ожидания WQA и WQB.В данный момент процесс A спит на WQA.

Я хочу, чтобы A проснулся, когда B спит в WQB, так что, когда A запускается, B уже ожидает WQB.Как я могу атомно разбудить A и поставить B на WQB?

1 Ответ

2 голосов
/ 23 июля 2011

Как насчет использования 2 семафоров?

Процесс A спит на семафоре A. Затем процесс B поднимет семафор A и запросит down () на семафоре B, что заставит его спать.Опять же, как только А заканчивает свою работу, он может поднять семафор B (и разбудить B), а затем пойти спать на семафор A.

...