LINUX.ORG.RU

threads


0

0

Здравствуйте. Как я понял, если в функции main() вызвать pthred_exit() - то прога дальше не выполняется? Т.е. она как бы висит, но другие потоки ничего не делают. Верно ?

anonymous

Ответ на: комментарий от cvv

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

anonymous
()
Ответ на: комментарий от cvv

А почему ? По идее же ресурсы потока освобождаются после того, как он сделать detach либо после pthread_join ? Или main() сразу создается в detach состоянии ?

anonymous
()
Ответ на: комментарий от anonymous

>По идее же ресурсы потока освобождаются после того, как он сделать detach либо после pthread_join ?

ерунда. ресурсы потока освобождаются после того, как он сделал pthread_exit()

из всех типов памяти ресурсом потока является стековая память. все остальные типы памяти ресурсами потока не являются, следственно завершение работы потока на них никак не влияет

cvv ★★★★★
()
Ответ на: комментарий от Motl

в смысле что там граблей понаразложено? так оно и есть.

кстати ета тема не раз обсуждалась с участием idle murr и прочих

cvv ★★★★★
()
Ответ на: комментарий от cvv

А можео ссылку ? А то поиском на сайте что-либо найти трудно..

P.S. а как же тогда на счет этого:

When a joinable thread terminates, its memory resources (thread descriptor and stack) are not deallocated until another thread performs !pthread_join! on it. Therefore, !pthread_join! must be called once for each joinable thread created to avoid memory leaks.

Причем у меня действително были memory leaks когда создавалось и помирало много потоков если не переводить их в detached state..

anonymous
()
Ответ на: комментарий от cvv

Поскал по форуму. Единственное, что нашел, что в LinuxThreads при выходе главного потока менеджер может прибить все остальные потоки. Если грабля токлько в этом (надеюсь LinuxThreads уже в прошлом, но в принципе и смерть всех потоков не худший вариант) то ничгео страшного

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.