pthread: was genau macht "joinable" und was macht "detached"?
hi
ich verstehe noch nicht den genauen Unterschied bei pthread:
was genau macht "joinable" bzw. pthread_join mit einem thread, wenn er sich beendet hat (oder wurde),
und was macht "detached"?
aktueller Anlass:
üblicherweise laufen fast alle meine threads in einer Dauerschleife (while (active) { // loop} ),
und wenn active extern auf 0 gesetzt wird, werden alle threads beendet und per pthread_join "gejoined" (was immer dann damit passiert).
was aber, wenn sich ein solcher thread aufhängt und daher von main() beendet, alle Einstellungen resettet und dann neu gestartet werden muss?
Geht das auch mit meinen "normalen joinable" threads, oder muss ich sie von vorn herein als detached ausführen?
Liste der Anhänge anzeigen (Anzahl: 1)
Der Linux Scheduler hat jetzt 2 Einträger in seiner Taskliste die er abarbeiten muß. Beim beenden muß der Worker wieder gejoint werden um das Programm sauber zu beenden. Wenn der mainthread sich beendet, ruft Linux für deinen Thread kill() auf und beendet ihn auch, nur: Du weißt nicht, in welchen Zustand er beendet wurde. Waren Dateien halb geschrieben? Das interessiert nicht mehr... Jetzt ist schluß.... kill() ;)