Trying to join an already exited pthread
Garrett Cooper
youshi10 at u.washington.edu
Thu Feb 8 08:02:14 UTC 2007
On Feb 7, 2007, at 1:51 PM, Steve Watt wrote:
> In <Pine.LNX.4.43.0702071314560.22034 at hymn08.u.washington.edu>,
> <youshi10 at 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
More information about the freebsd-hackers
mailing list