LINUX.ORG.RU

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

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

Ведь все равно у меня в потоке была проверка флага. Ошибкой было то, что я забыл перед pthread_exit разблокировать мьютекс — вот он и висел заблокированным

забираешь у потока признак инициализации initialized :-) ?

..норм, да :) .. «нарекаю тебя более не инециализированным!» :-)

необычное решение, я думал ты придумаешь ещё один флаг.. (и првоерять его дополнительно).. но проверять один флаг вместо двух фрагов — тож хорошая идея :-)

вообще не вызываю pthread_cancel, а жду, пока он сам отомрет

это на мой взгляд отлично!

...хотя вот в первом сообщении товарищ И таки как правильно потоки убивать? (комментарий) — предложил pthread_cleanup_push() / pthread_cleanup_pop() ..

..и поидее это было бы правильно.. но лично я склонен полагать что где-нибудь в каком-нибудь одном месте этот pthread_cleanup_push() будет забыт быть вызванным какой-нибудь внутренней служебной функцией (от поставщика третьего лица).. и попробуй найди где это было забыто :-) .. думаю что утечка ресурсов или зависание — будет обеспечено в редком случае.

так что , лично я — очень НЕ люблю хоть где-то использовать pthread_cancel :-)

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

Ведь все равно у меня в потоке была проверка флага. Ошибкой было то, что я забыл перед pthread_exit разблокировать мьютекс — вот он и висел заблокированным

забираешь у потока признак инициализации initialized :-) ?

..норм, да :) .. «нарекаю тебя более не инециализированным!» :-)

необычное решение, я думал ты придумаешь ещё один флаг.. (и првоерять его дополнительно).. но проверять один флаг вместо двух фрагов — тож хорошая идея :-)

вообще не вызываю pthread_cancel, а жду, пока он сам отомрет

это на мой взгляд отлично!

...хотя вот в первом сообщении товарищ И таки как правильно потоки убивать? (комментарий) — предложил pthread_cleanup_push() / pthread_cleanup_pop() ..

..и поидее это было бы правильно.. но лично я склонен полагать что где-нибудь в каком-нибудь одном месте этот pthread_cleanup_push() будет забыт быть вызванным какой-нибудь внутренней служебной функцией (от поставщика третьего лица).. и попробуй найди где это было забыто :-) .. думаю что утечка ресурсов или зависание — будет обеспечено в редком случае.