pthread_rwlock_tryrdlock()

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

Прототип:

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

Аргументы:

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

Библиотека:

libc

Описание:

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

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

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

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

POSIX 1003.1 Threads

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

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

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




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