По моему мнению, эта часть не имеет особого смысла с нынешним C ++.
В C ++ нет способа использовать исключение в качестве сигнала, потому что сигналы предназначены для выполнения обработчика и затем (возможно) продолжения выполнения.
C ++ исключения, однако, не работают таким образом. Как только вы попадаете в обработчик исключений, стек уже откатывается, и после обработки невозможно «продолжить»: невозможно получить оператор после броска (или после вызова функции, во время которого возникает исключение). выброшен).
Сигналы являются асинхронными, но не прерывают работу и продолжаются после того, как сигнал возможен (даже если, конечно, необходимо позаботиться о том, что делается в обработчике сигналов), вместо этого исключения нарушают ход программы, и продолжение невозможно.
Я бы сказал, что эти две идеи несовместимы на логическом уровне и на самом деле не имеет значения, является ли библиотека реентерабельной или нет.
Может быть, в ранней версии C ++ была возможность возобновления исключений ...