Параллельное и распределенное программирование на С++ - [239]
[EDEADLK] вызываю щ ий поток уже у д ерживает объект блокировки для обеспечения записи по объекту, адресуемому параметром rwlockr,
[EINVAL] значение, заданное параметром rwlock, не относится к инициализированному объекту блокировки чтения-записи, или значение abs_timeout, выраженное в наносекундах, меньше нуля либо больше или равно 1000 миллионам.
Эта функция не возвращает код ошибки [EINTR].
Примеры
Отсутствуют.
Замечания по использованию
Как упо м иналось в то м е Base Definitions стан д арта IEEE Std 1003.1-2001 (Section 3.285, Priority Inversion), приложения, которые используют эту функцию, могут по д вергнуться инверсии приоритетов.
Функция pthread_rwlock_timedrdlock() является частью опций Threads и Timeouts и может быть не пре д оставлена во всех реализациях.
Логическое обоснование
Отсутствует.
Будущие направления
Отсутствуют.
Смотри также
pthread_rwlock_destroy(), pthread_rwlock_rdlock(), pthread_rwlock_timedwrlock(), 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_timedwrlock
Имя
pthread_rwlock_timedwrlock — функция, блокирующая объект блокировки чтения-записи для обеспечения записи.
Синопсис
THR TMO
#include
#include
int pthread_rwlock_timedwrlock (
pthread_rwlock_t *restrict rwlock,
const struct timespec *restrict abs_timeout);
Описание
Функция pthread_rwlock_timedwrlock () при м еняет блокировку для обеспечения записи к объекту блокировки чтения-записи, адресуемому пара м етро м rwlock, подобно функции pthread_rwlock_wrlock (). Однако, если блокировка не м ожет быть предоставлена без ожидания, пока другие потоки не освободят ее, это ожидание будет прервано, когда истечет заданный интервал вре м ени. Интервал вре м ени истекает, когда наступит абсолютное вре м я, заданное пара м етро м abs_timeout (т.е. когда показания времени на используемых в системе часах станут равными или превысят значение abs_timeout), или если абсолютное вре м я, заданное пара м етро м abs_timeout, уже наступило в момент вызова.
TMR Если поддерживается опция Timers, отсчет интервала вре м ени происходит с использование м часов CLOCK_REALTIME.
Если опция Timers не поддерживается, отсчет интервала времени происходит с использованием системных часов, значение которых возвращает функция time (). Разрешение для интервала времени определяется разрешением часов, которые используются для его отсчета. Тип данных timespec определяется в заголовке
Если потоку, заблокированно м у по объекту блокировки чтения-записи при вызове функции pthread_rwlock_timedwrlock(), передается сигнал, то после его обработки поток возобновит ожидание освобождения блокировки, как если бы оно и не прерывалось.
Вызывающий поток может попасть в ловушку взаимоблокировки, если во время вызова он удерживает блокировку чтения-записи по объекту, адресуемому параметро м rwlock. Результаты не опре д елены, если эта функция вызывается с неинициализированны м объекто м блокировки чтения-записи.
Возвращаемое значение
Функция 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,
В учебно-методическом пособии рассматриваются основы языка программирования PL/SQL, реализованного в системе управления базами данных Oracle Database Server. Приводятся сведения о поддерживаемых типах данных, структуре программ PL/SQL и выполнении SQL-предложений в них. Отдельно рассмотрено создание хранимых в базах данных Oracle программ PL/SQL – процедур, функций, пакетов и триггеров.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИИнформационная технологияРУКОВОДСТВО ПО УПРАВЛЕНИЮ ДОКУМЕНТИРОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯInformation technology. Guidelines for the management of software documentationИздание официальноеДата введения 1994-07-01ГОССТАНДАРТ РОССИИ Москва© Издательство стандартов, 1994.
Самоучитель UMLПервое издание.В книге рассматриваются основы UML – унифицированного языка моделирования для описания, визуализации и документирования объектно-ориентированных систем и бизнес-процессов в ходе разработки программных приложений. Подробно описываются базовые понятия UML, необходимые для построения объектно-ориентированной модели системы с использованием графической нотации. Изложение сопровождается примерами разработки отдельных диаграмм, которые необходимы для представления информационной модели системы.