LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

детач сделан для того, чтобы некий тред запускал один или несколько других тредов и помирал(например). то есть запущенные треды живут дальше, а тот, кто их запускал, не заботится об их существовании.

ты же делаешь детач, и зачем-то спрашиваешь - жив ли отсоединенный тред. то есть поступаешь вопреки логике detach.

если таки такое поведение нужно, то детачнутый тред должен взводить флаг, который мастерный тред например опрашивает. или какой-то обьект синхронизации, на котором можно делать ожидание… но ты таким образом эмулируешь поведение недетачнутого треда. единственно что тут можно сделать какой-то таймаут ожидания завершения.

опять же надо понимать, что если тред взвел флаг - значит он еще работает. и мастерный тред не может увидя взведенный флаг каким-то образом прибивать ресурсы того, кто флаг взводит.

то есть флаг говорит о том, что тред близок к завершению, но не завершился.

Исходная версия alysnix, :

детач сделан для того, чтобы некий тред запускал один или несколько других тредов и помирал(например). то есть запущенные треды живут дальше, а тот, кто их запускал, не заботится об их существовании.

ты же делаешь детач, и зачем-то спрашиваешь - жив ли отсоединенный тред. то есть поступаешь вопреки логике detach.

если таки такое поведение нужно, то детачнутый тред должен взводить флаг, который мастерный тред например опрашивает. или какой-то обьект синхронизации, на котором можно делать ожидание… но ты таким образом эмулируешь поведение недетачнутого треда. единственно что тут можно сделать какой-то таймаут ожидания завершения.

опять же надо понимать, что если тред взвел флаг - значит он еще работает. и мастерный тред не может увидя взведенный флаг каким-то образом прибивать ресурсы того, кто флаг взводит.