Параллельное и распределенное программирование на С++
Шрифт:
pthread_condattr_destroy, pthread_condattr_init
Имя
pthread_condattr_destroy, pthread_condattr_init — функции разрушения и инициализации объекта атрибутов условной пере м енной.
Синопсис
THR
#include <pthread.h>
int pthread_condattr_destroy (pthread_condattr_t *attr);
int pthread_condattr_init (pthread_condattr_t *attr);
Описание
Функция pthread_condattr_destroy
Функция pthread_condattr_init предназначена для инициализации объекта атрибутов условной пере м енной attr значением, действующим по у м олчанию для всех атрибутов, определенных конкретной реализацией.
Если функция pthread_condattr_init вызывается для уже инициализированного объекта атрибутов attr , то результаты вызова этой функции не определены.
После того как объект атрибутов условной пере м енной уже был использован для инициализации одной или нескольких условных пере м енных, Любая функция, которая оказывает влияние на объект атрибутов (включая деструктор), никак не отразится на ранее инициализированных условных пере м енных.
Этот то м стан д арта IEEE Std 1003.1-2001 требует наличия д вух атрибутов: clock и process-shared.
Дополнительные атрибуты, их значения по умолчанию и имена соответствующих функций доступа, которые считывают и устанавливают эти значения атрибутов, определяются конкретной реализацией.
Возвращаемые значения
При успешно м завершении функции pthread_condattr_destroy Hpthread_condattr_init возвращают нулевое значение; в противном случае — код ошибки, обозначающий ее характер.
Ошибки
Функция pthread_condattr_destroy может завершиться неудачно, если:
[EINVAL] значение, заданное параметром аttr, недействительно.
Функция pthread_condattr_init завершится неудачно, если:
[ENOMEM] для инициализации объекта атрибутов условной переменной недостаточно существующей памяти. Эти функции не возвращают код ошибки [EINTR].
Примеры
Отсутствуют.
Замечания по использованию
Отсутствуют.
Логическое обоснование
С м. описание функций pthread_attr_init
Будущие направления
Отсутствуют.
Смотри также
pthread_attr_destroy , pthread_cond_destroy , pthread_condattr_getpshared, pthread_create,
pthread_mutex_destroy , то м Base Definitions стан д арта IEEE Std 1003.1-2001, <pthread.h>.
Последовательность внесения изменений
Функции впервые реализованы в выпуске Issue 5. Включены для согласования с расширение м POSIX Threads Extension.
Issue 6
Функции pthread_condattr_destroy и pthread_condattr_init от м ечены как часть опции Threads.
pthread_condattr_getpshared, pthread_condattr_setpshared
Имя
pthread_condattr_getpshared, pthread_condattr_setpshared — функции считывания и установки атрибутаусловной пере м енной process-shared.
Синопсис
THR TSH
#include <pthread.h>
int pthread_condattr_getpshared (const pthread_condattr_t *restrict attr, int *restrict pshared);
int pthread_condattr_setpshared (pthread_conda 11 r_t * аttr, int pshared) ;
Описание
Функция pthread_condattr_getpshared используется для получения значения атрибута process – shared из объекта атрибутов, адресуе м ого параметром attr. Функция pthread_condattr_setpshared позволяет установить атрибут process-shared в инициализированно м объекте атрибутов, адресуе м о м пара м етро м attr .
Атрибут process-shared устанавливается равным значению PTHREAD_PROCESS_ SHARED, чтобы разрешить использование условной переменной любым потоком, имеющим доступ к области памяти, в которой она размещена, даже если эта область памяти разделяется несколькими процессами. Если же атрибут process-shared равен значению PTHREAD_PROCESS_PRIVATE , Условная Переменная должна использоваться только потоками, созданными в одном процессе с потоком, который ее инициализировал; если с этой условной переменной попытаются работать потоки из различных процессов, поведение такой программы не определено. По умолчанию для этого атрибута устанавливается значение PTHREAD_PROCESS_PRIVATE.