Чтение онлайн

на главную - закладки

Жанры

Параллельное и распределенное программирование на С++
Шрифт:

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

При успешно м завершении функции pthread_rwlock_destroy и pthread_rwlock_init возвра щ ают нулевое значение; в противно м случае — код ошибки, обозначаю щ ий ее характер.

Проверка на наличие ошибок с кода м и [EBUSY] и [EINVAL] реализована (если реализована вооб щ е) так, как будто она выполняется в самом начале работы

каждой функции, и код ошибки в случае ее обнаружения возвращается до модификации состояния объекта блокировки чтения и записи, заданного параметром rwlock.

Ошибки

Функция pthread_rwlock_destroy м ожет завершиться неудачно, если:

[EBUSY] реализация обнаружила попытку разрушить заблокированный объект, адресуе м ый пара м етро м rwlock;

[EINVAL] значение, за д анное пара м етро м rwlock, не д ействительно.

Функция pthread_rwlock_init завершится неу д ачно, если:

[EAGAIN] систе м а испытывает не д остаток в ресурсах (не и м еется в виду память), необходимых для инициализации еще одного объекта блокировки для чтения и записи;

[ENOMEM] для инициализации объекта блокировки для чтения и записи недостаточно существующей памяти;

[EPERM] инициатор вызова не обладает привилегиями для выполнения этой операции.

Функция pthread_rwlock_init м ожет завершиться неу д ачно, если:

[EBUSY] реализация обнаружила попытку повторно инициализировать объект блокировки, адресуе м ый пара м етро м rwlock, которой был ранее инициализирован, но еще не разрушен;

[EINVAL] значение, заданное пара м етро м attr, не д ействительно.

Эти функции не возвращают ко д ошибки [EINTR].

Примеры

Отсутствуют.

Замечания по использованию

Отсутствуют.

Логическое обоснование

Отсутствует.

Будущие направления

Отсутствуют.

Смотри также

pthread_rwlock_rdlock , pthread_rwlock_timedrdlock , pthread_rwlock_timedwrlock , pthread_rwlock_tryrdlock , pthread_rwlock_trywrlock, pthread_rwlock_unlock, pthread_rwlock_wrlock , том Base Definitions стандарта IEEE Std 1003.1-2001, <pthread.h>.

Последовательность внесения изменений

Функции впервые реализованы в выпуске Issue 5. Issue 6

Для согласования со стандартом IEEE Std 1003.1j-2000 были внесены

следующие изменения.

• В разделе «Синопсис» изменена метка. Новая метка THR обозначает, что рассматриваемые функции теперь являются частью опции Threads (ранее они относились к опции Read-Write Locks стандарта IEEE Std 1003.1j-2000, а также считались частью дополнения XSI). В раздел «Синопсис» также не входит макрос инициализации.

• Раздел «Описание» отредактирован следующим образом:

— явно отмечено выделение ресурсов при инициализации объекта блокировки для чтения и записи;

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

• В раздел «Ошибки» добавлен код ошибки [EINVAL] , означающий, что при вызове функции pthread_rwlock_init значение, заданное пара м етро м attr, было недействительно.

• Отредактирован раздел «Смотри также».

В целях согласования со стандарто м ISO/IEC 9899: 1999 в прототип функции pthread_rwlock_init было добавлено ключевое слово restrict.

pthread_rwlock_rdlock, pthread_rwlock_tryrdlock

Имя

pthread_rwlock_rdlock, pthread_rwlock_tryrdlock— функции блокирования объекта блокировки чтения-записи для обеспечения чтения.

Синопсис

THR

#include <pthread.h>

int pthread_rwlock_rdlock (pthread_rwlock_t *rwlock) ; int pthread_rwlock_tryrdlock (pthread_rwlock_t *rwlock) ;

Описание

Функция pthread_rwlock_rdlock при м еняет блокировку для обеспечения чтения к объекгу блокировки чтения-записи, адресуе м о м у пара м етро м rwlock. Вызываю щ ий поток получает блокировку для чте н ия, если никакой записывающий поток не удерживает этот объект блокировки и не существует никаких других записывающих потоков, заблокированных по этому объекту.

TPS Если поддерживается опция Thread Execution Scheduling и потоки, участвующие в данной блокировке, выполняются с использованием стратегий планирования SCHED_FIFO или SCHED_RR, то вызывающий поток не получит эту блокировку, если ее удерживает записывающий поток или если по этому объекту блокировки заблокированы записывающие потоки такого же или более высокого приоритета; в противном случае вызывающий поток получит блокировку.

TSP TSP Если поддерживается опция Thread Execution Scheduling и потоки, участвующие в данной блокировке, выполняются с использованием стратегии планирования SCHED_SPORADIC, то вызывающий поток не получит эту блокировку, если ее удерживает записывающий поток или если по этому объекту блокировки заблокированы записывающие потоки такого же или более высокого приоритета; в противном случае вызывающий поток получит блокировку.

Поделиться:
Популярные книги

Эпоха Опустошителя. Том I

Павлов Вел
1. Вечное Ристалище
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эпоха Опустошителя. Том I

Проблема майора Багирова

Майер Кристина
1. Спецназ
Любовные романы:
современные любовные романы
6.60
рейтинг книги
Проблема майора Багирова

Законы Рода. Том 13

Андрей Мельник
13. Граф Берестьев
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 13

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

О, Путник!

Арбеков Александр Анатольевич
1. Квинтет. Миры
Фантастика:
социально-философская фантастика
5.00
рейтинг книги
О, Путник!

Прометей: каменный век

Рави Ивар
1. Прометей
Фантастика:
альтернативная история
6.82
рейтинг книги
Прометей: каменный век

Её (мой) ребенок

Рам Янка
Любовные романы:
современные любовные романы
6.91
рейтинг книги
Её (мой) ребенок

Идеальный мир для Лекаря 8

Сапфир Олег
8. Лекарь
Фантастика:
юмористическое фэнтези
аниме
7.00
рейтинг книги
Идеальный мир для Лекаря 8

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Цвет сверхдержавы - красный. Трилогия

Симонов Сергей
Цвет сверхдержавы - красный
Фантастика:
попаданцы
альтернативная история
8.06
рейтинг книги
Цвет сверхдержавы - красный. Трилогия

Болтливый мертвец

Фрай Макс
7. Лабиринты Ехо
Фантастика:
фэнтези
9.41
рейтинг книги
Болтливый мертвец

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Лишняя дочь

Nata Zzika
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Лишняя дочь