As in low-level kernel programming, the facilities available for safe use within the signal handler are limited, and the main flow of the process could have been interrupted at nearly any point, resulting in inconsistent data structures as seen by the signal handler.
Как и в программировании ядра низкого уровня, для безопасного использования в пределах обработчика сигнала, имеющиеся возможности ограничены, и основной поток процесса можно было бы прервать почти в любой точке, в результате чего, в распоряжении обработчика сигнала имеются несогласованные структуры данных.