Результаты не опре
д елены, если эта функция вызывается с неинициализированны
м объекто
м блокировки чтения-записи.
Возвращаемое значение
Функция pthread_rwlock_timedwrlock () возвра щ ает нулевое значение, если блокировка для записи по объекту блокировки чтения-записи, адресуе м о м у пара м етро м rwloc, предоставлена. В противно м случае возвращается код ошибки, обозначающий ее характер.
Ошибки
Фу н кция pthread_rwlock_timedwrlock () завершится неудачно, если:
[ETIMEDOUT] блокировка не м огла быть предоставлена до истечения заданного интервала вре м ени.
Функция pthread_rwlock_timedwrlock () м ожет завершиться неудачно, если:
[EDEADLK] вызываю щ ий поток уже удерживает объект блокировки по объекту,
адресуе м о м у пара м етро м rwlock;
[EINVAL] значение, заданное пара м етро м rwlock, не относится к инициализированно м у объекту блокировки чтения-записи, или значение abs_timeout, выраженное в наносекундах, меньше нуля либо больше или равно 1000 миллионам.
Эта функция не возвра щ ает код ошибки [EINTR].
Примеры
Отсутствуют.
Замечания по использованию
Как упоминалось в томе Base Definitions стандарта IEEE Std 1003.1-2001 (Section 3.285, Priority Inversion), приложения, которые используют эту функцию, могут подвергнуться инверсии приоритетов.
Функция pthread_rwlock_timedwrlock() является частью опций Threads и Timeouts и может быть не предоставлена во всех реализациях.
Логическое обоснование
Отсутствует.
Будущие направления
Отсутствуют.
Смотри также
pthread_rwlock_destroy(),pthread_rwlock_rdlock(), pthread_rwlock_timedrdlock(), pthread_rwlock_tryrdlock(), pthread_rwlock_trywrlock (), pthread_rwlock_unlock (), pthread_rwlock_wrlock (), том Base Definitions стандарта IEEE Std 1003.1-2001, , .
Последовательность внесения изменений
Функция впервые реализована в выпуске Issue 6, основание м послужил стандарт IEEEStd 1003.1j-2000.
pthread_rwlock_trywrlock, pthread_rwlock_wrlock
Имя
pthread_rwlock_trywrlock, pthread_rwlock_wrlock — функции, блокирующие объект блокировки чтения-записи для обеспечения записи.
Синопсис
THR
#include
int pthread_rwlock_trywrlock (pthread_rwlock_t *rwlock);
int pthread_rwlock_wrlock (pthread_rwlock_t *rwlock);
Описание
Функция pthread_rwlock_trywrlock () при м еняет блокировку для обеспечения записи подобно функции pthread_rwlock_wrlock(), за исключением того, что эта функция завершится неудачно, если какой-нибудь поток в данный момент удерживает блокировку по объекту, адресуемому пара м етро м rwlock