Newary()
newary() обращается к для распределения памяти под новый набор семафоров. Она распределяет объем памяти достаточный для размещения дескриптора набора и всего набора семафоров. Распределенная память очищается и адрес первого элемента набора семафоров передается в . Функция резервирует память под массив элементов нового набора семафоров и инициализирует ( ) набор. Глобальная переменная used_sems увеличивается на количество семафоров в новом наборе и на этом инициализация данных ( ) для нового набора завершается. Дополнительно выполняются следующие действия:
Все операции, следующие за вызовом , выполняются под глобальной блокировкой семафоров. После снятия блокировки вызывается (через sem_buildid()). Эта функция создает уникальный ID (используя индекс дескриптора набора семафоров), который и возвращается в вызывающую программу.