Поскольку обработчики сигналов не должны быть реентерабельными.
Обработчик сигнала обычно работает быстро и должен вызывать только асинхронные безопасные функции, т.е. очень ограниченный набор функций, см. signal (7) .
Вы обычно неОн не должен вызываться внутри себя.
Если вы не возвращаетесь из сигнала нормально (или не делаете siglongjmp
внутри него), предыдущие маски сигналов восстанавливаются после завершения обработчика сигнала.
Однако вы можете установить обработчик сигнала (через sigaction
), который не блокирует сам себя.
По аналогичным причинам на обычных процессорах обработчики intterupt также работают быстро и отключают прерывания.