sigblock()

Добавить сигналы в маску блокируемых сигналов

Прототип:

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

Аргументы:

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

Библиотека:

libc

Описание:

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

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

Невозможно заблокировать SIGKILL, SIGSTOP и SIGCONT – это системное ограничение.

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

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

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

Unix

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

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

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

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

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




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