У меня есть приложение, которое многопоточно - один поток отвечает за сбор мертвых детей с wait(), а другой поток порождает их с помощью fork по запросу.wait не работает в многопоточном приложении на ядре 2.4
Я узнал, что на одной платформе с ядром 2.4 и LinuxThread всегда происходит сбой ECHILD. Я выяснил, что проблема может заключаться в реализации LinuxThreads, совместимой с POSIX, на ядре 2.4, и following discussion предполагает, что нет способа решить эту проблему.
Еще я хотел бы быть уверенным, что никто не знает о каком-либо решении. Даже патч для ядра был бы приемлемым.
Когда я думаю о разработке приложений я не думаю, что это может быть возможно сделать и вилку() и ждать() в одном потоке (или только с огромным трудом)
Я не думаю, что будут какие-либо советы, кроме как перейти на дистрибутив на основе ядра 2.6, с библиотекой потоковой передачи, совместимой с POSIX. –
Ум показывает некоторый код? Обращение с детским процессом обманчиво сложно, есть много условий гонки, о которых нужно думать. – nos