PTHREAD_MUTEXATTR_GETPSHARED(3)

ИМЯ
pthread_mutexattr_getpshared, pthread_mutexattr_setpshared - возвращает/изменяет общепроцессный атрибут мьютекса

ОБЗОР
#include <pthread.h>

int pthread_mutexattr_getpshared(const pthread_mutexattr_t *attr,
                                 int *pshared);
int pthread_mutexattr_setpshared(pthread_mutexattr_t *attr,
                                 int pshared);

Компилируется и компонуется вместе с -pthread.

ОПИСАНИЕ
Эти функции возвращают и изменяют общепроцессный атрибут мьютекса в объекте атрибутов мьютекса. Данный атрибут должен быть установлен соответствующим образом для обеспечения правильной, эффективной работы мьютекса, созданного с использованием данного объекта атрибутов.

В общепроцессном аргументе можно указать одно из следующих значений:

PTHREAD_PROCESS_PRIVATE
    Мьютексы, созданные с таким объектом атрибутов, будут считаться общими только для нитей одного процесса, инициализировавшего мьютекс. Это значение используется по умолчанию для общепроцессного атрибута мьютекса.

PTHREAD_PROCESS_SHARED
    Мьютексы, созданные с таким объектом атрибутов, будут считаться общими между всеми нитями, имеющими доступ к памяти, содержащей объект, даже нити разных процессов.

Функция pthread_mutexattr_getpshared() помещает значения общепроцессного атрибута объекта атрибутов мьютекса, на который указывает attr, в расположение, указанное в pshared.

Функция pthread_mutexattr_setpshared() изменяет значения общепроцессного атрибута объекта атрибутов мьютекса, на который указывает attr, на значение, заданное в pshared.

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

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении эти функции возвращают 0. При ошибке возвращается положительный номер ошибки.

ОШИБКИ
Функция pthread_mutexattr_setpshared() может завершаться со следующими ошибками:

EINVAL
    Неверное значение в pshared.

ENOTSUP
    Значение pshared равно PTHREAD_PROCESS_SHARED, но реализация не поддерживает общепроцессные мьютексы.

СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1-2001, POSIX.1-2008.

СМОТРИТЕ ТАКЖЕ
pthread_mutexattr_init(3), pthreads(7)