Я читаю The Design and Evolution of C++ Бьерна Страуструпа. Что касается обработки исключений и асинхронных сигналов, это упоминается ниже:
Можно ли использовать исключения для обработки таких вещей, как сигналы? Почти наверняка не в большинстве сред C. Проблема в том, что C использует такие функции, как malloc, которые не являются реентерабельными. Если прерывание происходит в середине malloc и вызывает исключение, невозможно предотвратить повторное выполнение обработчиком исключения malloc.
Реализация C++, в которой последовательности вызовов и вся библиотека времени выполнения спроектированы с учетом требования повторного входа, позволила бы сигналам генерировать исключения.
Что автор имеет в виду под утверждением, что невозможно предотвратить повторное выполнение обработчиком исключений malloc? Как сделать функции повторно входящими, чтобы можно было генерировать исключения из обработчиков сигналов?