Очереди ожидания ядра Linux: может ли блокироваться проверка условий?Linux

Ответить
Anonymous
 Очереди ожидания ядра Linux: может ли блокироваться проверка условий?

Сообщение Anonymous »

Я понимаю, что в очередях ожидания ядра Linux выражение условия оценивается после того, как текущий поток ставится в очередь в списке ожидающих. Но что произойдет, если выражение условия включает блокировку?
Например:
  • поток A вызывает wait_event(wq,blocking_condition ) -> поток A добавляется в очередь wq, затем оценивается Blocking_condition, который блокируется, скажем, мьютексом. На этом этапе поток A блокируется в двух местах.
  • thead B вызывает Wake_up(wq)
  • поток A просыпается и продолжает работу , хотя он все равно должен ожидать этот мьютекс.
Применяется ли здесь какая-то специальная обработка (т. е. все блокирующие примитивы в ядре могут обрабатывать ложные пробуждения) или это чистое издевательство?

Подробнее здесь: https://stackoverflow.com/questions/790 ... heck-block
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»