Read_lock
Начинает работу с атомарного увеличения значения члена lock объекта rwlock_t. Это рискованная операция и она может быть отменена.
Если значение после увеличения остается отрицательным, какой-то процесс держит эту блокировку записи или, по крайней мере, какой-то процесс пытается ее приобрести. Макрокоманда read_lock переходит вперед к строке (обратите внимание— в другую секцию ядра). В ином случае, не существует ни одного процесса записи (хотя могут быть или не быть другие процессы чтения — это просто не имеет значения), поэтому можно перейти к коду блокировки чтения.
Имеется процесс записи. Макрокоманда read_lock отменяет результат увеличения в строке .
Циклическое повторение в ожидании, когда член lock объекта rwlock_t станет равным 0 или положительным.
Переход назад к строке для повторной попытки.