iofunc_attr_lock()

Заблокировать атрибутную запись

Прототип:

#include <sys/iofunc.h>
int iofunc_attr_lock( iofunc_attr_t *attr );

Аргументы:

attr
Указатель на блокируемую структуру iofunc_attr_t.

Библиотека:

libc

Описание:

Функция iofunc_attr_lock() блокирует структуру атрибутной записи attr, предотвращая изменение информации другими потоками.

Вызывать эту функцию (или iofunc_attr_trylock()) необходимо прежде, чем вносить какие-либо изменения в структуру атрибутной записи. После внесения изменений нужно вызвать iofunc_attr_unlock(), чтобы снять блокировку.

Обратите внимание, что этот механизм блокировки имеет встроенный счетчик. Это означает, что поток может блокировать структуру атрибутной записи несколько раз. Затем поток должен разблокировать структуру атрибутной записи соответствующее количество раз, и только после этого структура будет считаться разблокированной. При попытке другого потока заблокировать структуру, заблокированную текущим потоком, он будет заблокирован.

Возвращаемое значение:

EOK
Успешное завершение.
EAGAIN
На данный момент все мьютексы ядра заняты.

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

iofunc_attr_init(), iofunc_attr_t, iofunc_attr_trylock(), iofunc_attr_unlock()




Предыдущий раздел: Описание API системной библиотеки