Инициализация и разрушение барьера

We use cookies. Read the Privacy and Cookie Policy

Инициализация и разрушение барьера

int pthread_barrier_init(pthread_barrier_t* barrier,

 const pthread_barrierattr_t* attr, unsigned int count);

Функция инициализирует объект синхронизации типа барьер, после чего его можно использовать. В атрибутах барьера устанавливается (или запрещается) возможность доступа к барьеру из других процессов. По умолчанию такой доступ запрещен. Для того чтобы изменить возможность доступа к созданному ранее барьеру, его необходимо разрушить, установить соответствующий атрибут и инициализировать барьер повторно. Параметр count показывает, какое количество потоков будет ожидать на барьере до их освобождения.

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

EOK — успешное выполнение;

EAGAIN — системе не хватает ресурсов для инициализации барьера;

EBUSY — попытка инициализации уже инициализированного барьера;

EFAULT — сбой произошел при обращении ядра к аргументам;

EINVAL — attr указывает на неинициализированное значение атрибутов.

int pthread_barrier_destroy(pthread_barrier_t* barrier);

Функция разрушает барьер, после чего соответствующий элемент синхронизации barrier не может использоваться без повторной его инициализации.

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

EOK — успешное выполнение;

EBUSY — в настоящее время есть потоки, блокированные на барьере;

EINVAL — неинициализированный объект barrier.

Данный текст является ознакомительным фрагментом.