Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Feb 2007 09:40:33 -0800 (PST)
From:      youshi10@u.washington.edu
To:        freebsd-questions@freebsd.org
Subject:   Re: Trying to join an already exited pthread
Message-ID:  <Pine.LNX.4.43.0702090940330.5825@hymn01.u.washington.edu>
In-Reply-To: <Pine.GSO.4.64.0702090053310.6692@sea.ntplx.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 9 Feb 2007, Daniel Eischen wrote:

> On Thu, 8 Feb 2007, Garrett Cooper wrote:
>> 
>> Actually, now that I think about it the calls I made with ps in the program 
>> are valid for Linux but not for FreeBSD (they're for getting thread 
>> listings). Hence error code 2.
>> 
>> From intro(2):
>> 
>>     2 ENOENT No such file or directory.  A component of a specified pathname 
>> did not exist, or
>> 					  the pathname was an empty
>> 					  string.
>> 
>> Didn't think that a bad command would return errno=2 though..
>
> And hopefully you've realized that your code is totally bogus
> since pthread_foo() don't set errno.  All the pthread_foo()
> functions _return_ the error.  If your code is not checking
> the return values from those functions, it is wrong on every
> platform, not just FreeBSD.
>
> -- 
> DE

Well, right. I was just being lazy by checking errno, instead of checking the return value of pthread_*. It wasn't meant to be anything more than a simple set of tests. I thought that errno was set on errors though, but after reading the manpage more carefully it turns out that this is not the case.

I'll see if I can fix my checks.

Thanks for bringing this to my attention!

-Garrett




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.43.0702090940330.5825>