Date: Thu, 08 Feb 2007 21:08:29 -0800 From: Garrett Cooper <youshi10@u.washington.edu> To: freebsd-questions@freebsd.org Subject: Re: Trying to join an already exited pthread Message-ID: <45CC01CD.5060003@u.washington.edu> In-Reply-To: <45CC014B.9020303@u.washington.edu> References: <Pine.LNX.4.43.0702071314560.22034@hymn08.u.washington.edu> <eqdhl2$1tmb$1@wattres.Watt.COM> <87D4B047-DC72-427B-863F-A082C3A4E5CD@u.washington.edu> <45CB38D8.1000706@u.washington.edu> <45CC014B.9020303@u.washington.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
Garrett Cooper wrote: > Garrett Cooper wrote: >> Garrett Cooper wrote: >>> On Feb 7, 2007, at 1:51 PM, Steve Watt wrote: >>> >>>> In <Pine.LNX.4.43.0702071314560.22034@hymn08.u.washington.edu>, >>>> <youshi10@u.washington.edu> wrote: >>>>> Just wondering: >>>>> >>>>> If I was to try and join a pthread that already exited, would there >>>>> be an error >>>>> message output and/or errno set to an error value, or would a >>>>> system hang? >>>> >>>> Was the thread created with detach state set PTHREAD_CREATE_DETACHED or >>>> PTHREAD_CREATE_JOINABLE? If it was PTHREAD_CREATE_JOINABLE, has the >>>> thread already been joined? >>>> >>>> You should be able to join a thread that was created joinable, only >>>> once. >>>> If you join it again, or join a thread that was created detached, the >>>> results are unspecified in POSIX. There is an error status that may >>>> be returned, but it may do other bad things to your system. >>>> >>>> Note that pthread_join doesn't set errno; it returns an error value >>>> directly. I would never expect the system to hang, though the >>>> application >>>> might. If your application is hanging, make sure that you're not >>>> trying >>>> to call pthread_join from within a signal handler. >>>> >>>>> It this variable on Unix OSes? >>>> >>>> That the results are unspecified? No. What "unspecified" means? >>>> Absolutely. >>>> --Steve Watt KD6GGD PP-ASEL-IA ICBM: 121W 56' 57.5" / 37N >>>> 20' 15.3" >>>> Internet: steve @ Watt.COM Whois: SW32-ARIN >>>> Free time? There's no such thing. It just comes in varying >>>> prices... >>> >>> I asked this because I was short on time and so was the person >>> who asked me earlier. I'm going to try giving the pthread exit and >>> join a shot just to see whether or not this is true or not and then >>> I'll report my results to the list. >>> Thanks for the insight though--hopefully my results will yield a >>> solid positive or negative to this being a problem. >>> -Garrett >> >> Under Suse Linux there were absolutely no errors when I tried to do >> this. I'll post a code snippet later. >> -Garrett > > Ok, here's a link to my code: > > http://students.washington.edu/youshi10/posted/thread_test.c > > My results (FreeBSD): > > [root@hoover /home/gcooper]# ./tt > Thread join detached > Thread kill detached > Joined thread yielded error code: 2 > Trying to join the already joined thread yields error code: 0 > > My results (Suse Linux): > > # ./tt > Thread join detached > Thread kill detached > Joined thread yielded error code: 0 > Trying to join the already joined thread yields error code: 0 > > That was sure interesting.. is it supposed to error out or was it the > remnant of an old error call? > > Probably the latter, but I was just curious.. > > -Garrett Sorry--wrong list. -Garrett
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?45CC01CD.5060003>