Всем привет. Бьюсь тут с одной софтиной - никак не хочет правильно работать, собака :) Изначально она писалась с использованием вызовов clone(). Самое приятное в этих вызовах - возможность выбора, какие объекты ядра у предка и потомка общие, а какие - у каждого свои. Ну и схема была примерно такая: идентификаторы файлов - общие, память общая, обработчики сигналов - персональные.
Потом прикрутил к софтине MySQL, который, как оказалось, не умеет нормально работать с clone - нитями (падает с segfault через некоторое время работы). Соответственно, пришлось перейти на pthreads. Теперь все работает, пока не придет сигнал :)
Из экспериментов осознал, что обработчики сигналов у всех общие. А как сделать, чтобы они были раздельные? В документации ничего не нашел. Что, нужно писать корневой обработчик сигналов в главной нити?