Re: Bug or misdocumented feature in pthread_setaffinity_np.3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux