Инициализация и разрушение барьера
Инициализация и разрушение барьера
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.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Пример: объект порогового барьера
Пример: объект порогового барьера Предположим, вам необходимо, чтобы рабочие потоки оставались в состоянии ожидания и не выполнялись до тех пор, пока количество таких потоков не станет достаточным для образования рабочей группы, способной выполнить нужную работу. Как
Комментарии по поводу реализации объекта порогового барьера
Комментарии по поводу реализации объекта порогового барьера Возможности реализованного выше объекта порогового барьера в интересах простоты были намеренно ограничены. Вообще говоря, было бы желательно эмулировать объекты Windows следующим образом:• Разрешив объектам
Разрушение объекта мьютекс
Разрушение объекта мьютекс int pthread_mutex_destroy(pthread_mutex_t* mutex);Вызов разрушает объект мьютекс, на который указывает переменная mutex. После чего эта переменная не может быть использована без предварительного вызова pthread_mutex_init().Возвращаемые значения:EOK — успешное завершение;EBUSY -
Разрушение блока параметров
Разрушение блока параметров int pthread_condattr_destroy(pthread_condattr_t* attr);Функция разрушает блок параметров условной переменной, на которые указывает attr, после чего он уже не может использоваться без повторной инициализации.На практике разрушение параметров объекта синхронизации не
Разрушение условной переменной
Разрушение условной переменной int pthread_cond_destroy(pthread_cond_t* cond);Вызов функции деинициализирует условную переменную cond. Для дальнейшего использования условной переменной, на которую ссылается cond, ее необходимо инициализировать вызовом pthread_cond_init(). Функция может
Параметры барьера
Параметры барьера Следующие функции инициализируют и разрушают блок параметров барьера:int pthread_barrierattr_init(pthread_barrierattr_t* attr);int pthread_barrierattr_destroy(pthread_barrierattr_t* attr);Функция инициализации возвращает следующие значения:EOK — успешное выполнение;ENOMEM — недостаточно памяти для
Инициализация и разрушение спинлока
Инициализация и разрушение спинлока int pthread_spin_init(pthread_spinlock_t* spinner, int pshared);Функция инициализирует объект синхронизации спинлока блокировки, на который указывает аргумент spinner, и устанавливает для него параметр доступа из других процессов в соответствии со значением
8.9.1 Инициализация RIP
8.9.1 Инициализация RIP При запуске каждый маршрутизатор должен знать только о сети, к которой он подключен. Маршрутизатор RIP отправляет эти сведения широковещательной рассылкой на все соседние с ним в локальной сети маршрутизаторы. Кроме того, эти же сведения посылаются
Разрушение мифа о главном персонаже
Разрушение мифа о главном персонаже Считается, что главная цель дизайна сайта, ориентированного на пользователя, – обеспечить наилучшие условия пребывания на нем главного персонажа. Но это все равно что строить супермаркет, в котором все товары располагаются на высоте
R.12.6 Инициализация
R.12.6 Инициализация Объект класса без конструкторов, без частных или защищенных членов, без виртуальных функций и без базовых классов можно инициализировать с помощью списка инициализаторов (§R.8.4.1). Объект класса с конструктором должен инициализироваться или иметь
Инициализация
Инициализация Переменной в объявлении может быть присвоено начальное значение посредством инициализатора. Записи инициализатора в объявлении предшествует знак равенства=<инициализатор>Можно инициализировать переменные любого типа. Функции не инициализируются.
5.2.4 Инициализация
5.2.4 Инициализация Использование для обеспечения инициализации объекта класса функций вроде set_date() (установить дату) неэлегантно и чревато ошибками. Поскольку нигде не утверждается, что обект должен быть инициализирован, то программист может забыть это сделать, или (что
Разрушение PAH в космосе Дмитрий Вибе
Разрушение PAH в космосе Дмитрий Вибе Опубликовано 02 января 2014 Вы, возможно, заметили, что мои колонки в последнее время появляются нерегулярно. Увы, много приходится писать и другого: за осень–зиму мы с коллегами написали девять отчётов. Угадайте,
О том, как в галактиках перемешаны разрушение и созидание Дмитрий Вибе
О том, как в галактиках перемешаны разрушение и созидание Дмитрий Вибе Опубликовано 04 августа 2013 В предпредыдущей колонке я мельком упомянул стимулированное звездообразование, точнее, рождение новых поколений звёзд, стимулированное тем или иным
Инициализация
Инициализация На этапе инициализации в зависимости от входных параметров устанавливаются переменные состояния, необходимые для валидации пути сертификации [70]. В переменных состояния сохраняются различные ограничения, учитываемые при валидации пути. Переменные