Re: Man page bug report about pthread_join

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

 



Hello Mats,

On 08/30/2016 04:41 AM, Mats Wichmann wrote:
> On 08/28/2016 03:58 PM, Michael Kerrisk (man-pages) wrote:
>> Hello 王守堰,
>>
>> On 08/24/2016 09:11 PM, 王守堰 wrote:
>>> Hi:
>>>   I have checked the newest version of pthread_join at
>>> *http://man7.org/linux/man-pages/man3/pthread_join.3.html
>>> <http://man7.org/linux/man-pages/man3/pthread_join.3.html>*
>>>   I think there exists something wront in this sentence:
>>>
>>> If *retval* is not NULL, then *pthread_join*() copies the exit status of
>>>        the target thread (i.e., the value that the target thread supplied to
>>>        pthread_exit(3)
>>> <http://man7.org/linux/man-pages/man3/pthread_exit.3.html>) into the
>>> location pointed to by **retval*.
>>>
>>> I think it should be "into the location pointed to by *retval" *or
>>> "into **retval".*
>>>
>>> Because the actual behavior of pthread_join() is like:  *retval = exit_status;
>>>
>>> But the current man page description means: *(*retval) = exit_status;
>>>
>>> Do you agree with me?
>>>
>>> Hope your reply.
>>
>> I agree that there is a bit of confusion in the wording of the page.
>> I changed this paragraph to read:
>>
>>        If retval is not NULL, then pthread_join() copies the exit  status
>>        of  the target thread (i.e., the value that the target thread sup‐
>>        plied to pthread_exit(3)) into the location pointed to by  retval.
>>        If the target thread was canceled, then PTHREAD_CANCELED is placed
>>        in the location pointed to by retval.
>>
>> Okay?
>>
>> Cheers,
> 
> The wording here comes off kind of awkward. How about this as an
> alternate thought:
> 
> If retval is not NULL, pthread_join shall return a pointer to a location
> containing the exit status of the target thread in retval. If the target
> thread was canceled, the exit status will indicate PTHREAD_CANCELED.

I guess it's in the eye of the beholder. To me, your phrasing sounds a
little awkward :-}. So, for the moment I'm inclined to leave things be.

> I don't think the aside (i.e. the value that ...) adds any value.

Hmm. I don't so far agree. I think it's a helpful tip to the reader to 
let them know where this exit status comes from. Why do you think it 
isn't?

> While we're here, this page doesn't mention the justification for
> joining in the first place, which is to have an opportunity to clean up
> after a thread exits - or rather, it is mentioned, but in a negative
> sense ("failure to join with a thread that is joinable..."). I don't
> immediately have a proposal, but could think about it if anyone believes
> that's a good idea.

I added a sentence at the end of the first paragraph in NOTES:

       After a successful call to pthread_join(), the caller  is  guaran‐
       teed  that  the target thread has terminated.  <<The caller may then
       choose to do any clean-up that is required  after  termination  of
       the  thread  (e.g.,  freeing  memory  or other resources that were
       allocated to the target thread).>>

Helpful?

Cheers,

Michael


-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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