pthread_rwlock_trywrlock()

Тестировать возможность доступа по записи к необходимой блокировке

Прототип:

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

Аргументы:

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

Библиотека:

libc

Описание:

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

Возможно, функции потребуется блокировка, чтобы определить состояние блокировки чтения-записи.

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

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

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

POSIX 1003.1 THR

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

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

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




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