pthread_rwlock_wrlock()

Предоставить доступ по записи всем потокам, которые его запрашивают

Прототип:

#include <pthread.h>
int pthread_rwlock_wrlock( pthread_rwlock_t *rwl );

Аргументы:

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

Библиотека:

libc

Описание:

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

Если сигнал доставлен в поток, ожидающий блокировки блокировки чтения-записи, он возобновляет ожидание блокировки после возврата из обработчика сигнала.

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

EOK
Успешное завершение.
EAGAIN
При первом использовании статически инициализированной блокировки чтения-записи было недостаточно системных ресурсов для инициализации блокировки чтения-записи.
EDEADLK
Вызывающий поток уже имеет исключительную блокировку для rwl.
EFAULT
Произошла ошибка, когда ядро попыталось получить доступ к rwl.
EINVAL
Блокировка чтения-записи rwl некорректна.

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

POSIX 1003.1 Threads

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

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

pthread_rwlock_destroy(), pthread_rwlock_init(), pthread_rwlock_rdlock(), pthread_rwlock_tryrdlock(), pthread_rwlock_trywrlock(), pthread_rwlock_unlock()




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