When a thread terminates by calling
.BR pthread_exit (3),
all clean-up handlers are executed as described in the preceding point.
-(Clean-up handlers are \fInot\fP called if the thread terminates by
+(Clean-up handlers are
+.I not
+called if the thread terminates by
performing a
.I return
from the thread start function.)
For this reason, the caller must ensure that calls to these
functions are paired within the same function,
and at the same lexical nesting level.
-(In other words, a clean-up handler is only established
+(In other words, a clean-up handler is established only
during the execution of a specified section of code.)
Calling
.BR pthread_cleanup_push ()
and
.BR pthread_cleanup_pop ()
-functions \fIare\fP implemented as macros that expand to text
+functions
+.I are
+implemented as macros that expand to text
containing \(aq\fB{\fP\(aq and \(aq\fB}\fP\(aq, respectively.
This means that variables declared within the scope of
-paired calls to these functions will only be visible within that scope.
+paired calls to these functions will be visible within only that scope.
POSIX.1
.\" The text was actually added in the 2004 TC2
.BR pthread_setcancelstate (3),
.BR pthread_testcancel (3),
.BR pthreads (7)
+.SH COLOPHON
+This page is part of release 3.79 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%http://www.kernel.org/doc/man\-pages/.