Re: Review request: new pthread_exit(3) page

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

 



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.

> .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.

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.

>
> 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
>
--
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