Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 8 Feb 2007 00:02:03 -0800
From:      Garrett Cooper <youshi10@u.washington.edu>
To:        freebsd-hackers@freebsd.org
Subject:   Re: Trying to join an already exited pthread
Message-ID:  <87D4B047-DC72-427B-863F-A082C3A4E5CD@u.washington.edu>
In-Reply-To: <eqdhl2$1tmb$1@wattres.Watt.COM>
References:  <Pine.LNX.4.43.0702071314560.22034@hymn08.u.washington.edu> <eqdhl2$1tmb$1@wattres.Watt.COM>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?87D4B047-DC72-427B-863F-A082C3A4E5CD>