Основной процесс может форкнуть N потомков, каждый раз перед созданием нового процесса происходит уменьшение семафора, а когда потомок завершился обработчик сигнала CHLD увиличивает семафор.
Так вот, когда потомок завершает работу и если на функции уменьшения семафора основной процесс заснул, то основной процесс возвращается из сна с ошибкой после обработки сигнала. Есть ли решение проблемы? Спасибо.
P.S. программа на perl'е
Кроме того, если потомок сам уменьшает значения семафора, проблема остается прежней.
Форум —
Development