Bug or misdocumented feature in pthread_setaffinity_np.3
Alejandro Colomar
colomar.6.4.3@gmail.com
Mon Sep 7 09:26:57 GMT 2020
Hi Michael,
On 2020-09-07 11:21, Michael Kerrisk (man-pages) wrote:
>> Or is it that those functions return an error code that corresponds to a
>> valid `errno` error number? In that case it could be documented better
>> IMHO.
>
> Yes, probably you are right. The thing is, when you use pthreads you
> have to know they are different from the conventional APIs. The
> pthreads(7) page hints at this:
>
> Most pthreads functions return 0 on success, and an error number
> on failure. Note that the pthreads functions do not set errno.
>
>> If that is the case, do those functions set `errno` and also return that
>> same `errno` value redundantly?
>
> No, they don't use errno at all.
>
> So, I exp[anded the text in pthreads(7), to make the point more explicit:
>
> Most pthreads functions return 0 on success, and an error number
> on failure. The error numbers that can be returned have the same
> meaning as the error numbers returned in errno by conventional
> system calls and C library functions. Note that the pthreads
> functions do not set errno.
>
> Note that the various pthreads manual pages (should) all refer to
> pthreads(7) in SEE ALSO. I'm reluctant to add a note like this to
> every pthreads page, since it seems verbose, but I have also added
> this note to errno(3):
>
> Note that the POSIX threads APIs do not set errno on error.
> Instead, on failure they return an error number as the function
> result. These error numbers have the same meanings as the error
> numbers returned in errno by other APIs.
>
> Perhaps that suffices for you?
Yes, that is much clearer now.
Thanks,
Alex
More information about the Libc-alpha
mailing list