Re: Review request: new pthread_exit(3) page

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

 



On Fri, Oct 24, 2008 at 19:41, Michael Kerrisk
<mtk.manpages@xxxxxxxxxxxxxx> wrote:
> Hello Bert,
>
> Thanks for your review.  Follow-ups below.
>
> On Wed, Oct 22, 2008 at 3:58 PM, Bert Wesarg <bert.wesarg@xxxxxxxxxxxxxx> wrote:
>> On Wed, Oct 22, 2008 at 19:48, Michael Kerrisk
>> <mtk.manpages@xxxxxxxxxxxxxx> wrote:
>>> Any reviews for pthread_exit(3)?
>>>
>>> .\" Copyright (c) 2008 Linux Foundation, written by Michael Kerrisk
>>> .\"     <mtk.manpages@xxxxxxxxx>
>>> .\"
>>> .\" Permission is granted to make and distribute verbatim copies of this
>>> .\" manual provided the copyright notice and this permission notice are
>>> .\" preserved on all copies.
>>> .\"
>>> .\" Permission is granted to copy and distribute modified versions of this
>>> .\" manual under the conditions for verbatim copying, provided that the
>>> .\" entire resulting derived work is distributed under the terms of a
>>> .\" permission notice identical to this one.
>>> .\"
>>> .\" Since the Linux kernel and libraries are constantly changing, this
>>> .\" manual page may be incorrect or out-of-date.  The author(s) assume no
>>> .\" responsibility for errors or omissions, or for damages resulting from
>>> .\" the use of the information contained herein.  The author(s) may not
>>> .\" have taken the same level of care in the production of this manual,
>>> .\" which is licensed free of charge, as they might when working
>>> .\" professionally.
>>> .\"
>>> .\" Formatted or processed versions of this manual, if unaccompanied by
>>> .\" the source, must acknowledge the copyright and authors of this work.
>>> .\"
>>> .TH PTHREAD_EXIT 3 2008-10-19 "Linux" "Linux Programmer's Manual"
>>> .SH NAME
>>> pthread_exit \- terminate calling thread
>>> .SH SYNOPSIS
>>> .nf
>>> .B #include <pthread.h>
>>>
>>> .BI "void pthread_exit(void *" value_ptr );
>> In the reminder you are talking about 'retval' not 'value_ptr' anymore.
>
> Fixed.
>
>>> .sp
>>> Compile and link with \fI\-pthread\fP.
>>> .SH DESCRIPTION
>>> The
>>> .BR pthread_exit ()
>>> function terminates the calling thread and returns a value via
>>> .I retval
>>> that (if the thread is joinable)
>>> is available to another thread in the process that calls
>>> .BR pthread_join (3).
>>>
>>> Any clean-up handlers established by
>>> .BR pthread_cleanup_push (3)
>>> that have not yet been popped,
>>> are popped (in the reverse of the order in which they were pushed)
>>> and executed.
>>> If the thread has any thread-specific data, then,
>>> after the clean-up handlers have been executed,
>>> the corresponding destructor functions are called,
>>> in an unspecified order.
>>>
>>> When a thread terminates,
>>> process-shared resources (e.g., mutexes, condition variables,
>>> semaphores, and file descriptors) are not released,
>>> and functions registered using
>>> .BR atexit (3)
>>> are not called.
>>>
>>> After the last thread in a process terminates,
>>> the process terminates as by calling
>>> .BR exit (3)
>>> supplying an exit status of zero;
>>> thus, process-shared resources
>>> are released and functions registered using
>>> .BR atexit (3)
>>> are called.
>>> .SH RETURN VALUE
>>> This function does not return to the caller.
>>> .SH ERRORS
>>> This function always succeeds.
>>> .SH CONFORMING TO
>>> POSIX.1-2001.
>>> .SH NOTES
>>> Performing a return from the start function of any thread other
>>> than the main thread results in an implicit call to
>>> .BR pthread_exit (),
>>> using the function's return value as the thread's exit status.
>>>
>>> To allow other threads to continue execution,
>>> the main thread should terminate by calling
>>> .BR pthread_create ()
>>> rather than
>>> .BR exit (3).
>> This paragraph sounds wrong.
>
> Can you say more please?  Wrong in what way?
It should call pthread_exit not pthread_create.

>
>> BTW, Linux behaves a little strange if you quit the main thread. For
>> example in top the task is marked '<defunct>'. If I press Ctrl+Z the
>> task go to sleep but I don't get my prompt back.
>
> Yes.  Can you provide any pointers to further ino. bug reports
> regarding that problem?
That may take a while, but I remember darkly that this was on lkml sometime ago.

This Ctrl+Z-behavior is new to me.

Bert
>
> Cheers,
>
> Michael
>
>>> The value pointed to by
>>> .IR retval
>>> should not be on the located on the calling thread's stack,
>>> since the contents of that stack are undefined after the thread terminates.
>>> .SH EXAMPLE
>>> See
>>> .BR pthread_create (3).
>>> .SH SEE ALSO
>>> .BR pthread_create (3),
>>> .BR pthread_join (3),
>>> .BR pthreads (7)
>>> --
>>> 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
>>>
>>
>
>
>
> --
> Michael Kerrisk
> Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
> git://git.kernel.org/pub/scm/docs/man-pages/man-pages.git
> man-pages online: http://www.kernel.org/doc/man-pages/online_pages.html
> Found a bug? http://www.kernel.org/doc/man-pages/reporting_bugs.html
>
--
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