ado_rwlock_wrlock()

Захват эксклюзивной блокировки по записи для объекта rw-блокировки

Прототип:

#include <audio_driver.h>
int ado_rwlock_wrlock( pthread_rwlock_t *rwl );

Аргументы:

rwl
Указатель на структуру pthread_rwlock_t для объекта блокировки чтения-записи.

Библиотека:

libado

Описание:

Макрос выполняет эксклюзивную блокировку по записи для объекта rw-блокировки.

Макрос опредляется как pthread_rwlock_wrlock() или ado_rwlock_wrlock_debug() в зависимости от того, определены ли макросы ADO_MUTEX_DEBUG и ADO_DEBUG (см. Отладка драйвера). Отладочная версия использует ado_debug() для отображения сообщения, помогающего локализовать проблемный мьютекс драйвера.

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

EOK
Успешное завершение (аналогично pthread_rwlock_wrlock()).
EAGAIN
При первом использовании статически инициализированного объекта синхронизации оказалось недостаточно системных ресурсов для фактической инициализации.
EDEADLK
Вызывающий поток уже имеет эксклюзивную блокировку для rwl.
EFAULT
При попытке ядра обратиться к rwl возникла ошибка.
EINVAL
Объект синхронизации rwl не является корректным.

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

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

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

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

ado_rwlock_destroy(), ado_rwlock_init(), ado_rwlock_rdlock(), ado_rwlock_unlock(), pthread_rwlock_wrlock()




Предыдущий раздел: Библиотека libado