sigunblock()

Разблокировать сигналы

Прототип:

#include <unix.h>
int sigunblock( int mask );

Аргументы:

mask
Битовая маска сигналов, которые необходимо разблокировать.

Библиотека:

libc

Описание:

Функция sigunblock() удаляет сигналы, указанные в mask, из перечня заблокированных. Сигналы разблокируются в том случае, если соответствующий бит в mask равен 1; макрос sigmask() позволяет сконструировать маску для указанного номера сигнала. sigunblock() возвращает предыдущую маску. Восстановить предыдущую маску можно посредством вызова sigsetmask().

При нормальном использовани сигналы блокируются при использовании sigblock(). Для начала критической секции кода, переменные, модифицированные при возникновении сигнала, анализируются для определения отсутствия необходимости выполнять некую работу и процесс приостанавливается с помощью sigpause() с маской, возвращенной через sigblock().

Сигналы SIGKILL, SIGSTOP или SIGCONT невозможно заблокировать.

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

Предыдущая установленная маска сигналов.

Классификация:

Unix

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Предостережения:

Использование этих интерфейсов с системными библиотеками или в многопоточных приложениях не поддерживается.

Тематические ссылки:

kill(), pthread_sigmask(), sigaction(), sigblock(), sigmask(), signal(), sigpause(), sigprocmask(), sigsetmask()




Предыдущий раздел: Описание API системной библиотеки