Обработчик сигнала может быть вызван в любое время, в том числе во время, когда выполняется другой вызов malloc
. Если это произойдет, произойдет одно из двух:
- Ваш процесс будет заблокирован внутри обработчика сигнала, потому что
malloc
не сможет получить блокировку кучи.
- Ваш процесс испортит свою кучу, потому что
malloc
получает блокировку (или не думает, что она ему нужна), а затем продолжает обрабатывать кучу несогласованно, что приводит к последующему сбою. 1011 *