Ядро Linux в комментариях

       

Read_lock


Начинает работу с атомарного увеличения значения члена lock объекта rwlock_t. Это рискованная операция и она может быть отменена.

Если значение после увеличения остается отрицательным, какой-то процесс держит эту блокировку записи или, по крайней мере, какой-то процесс пытается ее приобрести. Макрокоманда read_lock переходит вперед к строке (обратите внимание— в другую секцию ядра). В ином случае, не существует ни одного процесса записи (хотя могут быть или не быть другие процессы чтения — это просто не имеет значения), поэтому можно перейти к коду блокировки чтения.

Имеется процесс записи. Макрокоманда read_lock отменяет результат увеличения в строке .

Циклическое повторение в ожидании, когда член lock объекта rwlock_t станет равным 0 или положительным.

Переход назад к строке для повторной попытки.



Содержание раздела