pthreads : questions about concurrency and lifetime

Garrett Cooper youshi10 at u.washington.edu
Tue Nov 28 21:33:37 UTC 2006


Hello once again,
    Just wondering about pthreads now. I know that the lifetime (scope) 
of a regular procedural function in C is simple.. it's from the top of 
the function body to the bottom of the function body (assuming no 
infinite loops are injected). Example:

(void*) function(void*) {/* lifetime of function is here. */ }

However looking over pthread(3), there are a number of different 
functions for killing threads and exiting child threads, in order 
terminate child threads (and maybe to get back to the main thread of 
execution in a program).

So my question is, once the end of a function body is reached that was 
made using pthread_create(), does the thread exit and 'destroy' itself 
or do I need to do 'manual' cleanup, i.e. run pthread_detach(3), 
pthread_exit(3), or pthread_kill(3)?

Thanks!
-Garrett


More information about the freebsd-hackers mailing list