From a245d679cfdca3ba5c5408a5b0f9f19e078eb998 Mon Sep 17 00:00:00 2001 From: jhb Date: Sun, 2 Nov 2014 23:22:22 +0000 Subject: MFC 273644,273738: Clarify that pthread_cleanup_push()/pop() are implemented as macros that create a new code block and thus must be balanced at the same lexical scope. (This is also a requirement in POSIX.) PR: 194280 Submitted by: dr2867.business@pacbell.net --- share/man/man3/pthread_cleanup_pop.3 | 10 +++++++++- share/man/man3/pthread_cleanup_push.3 | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/share/man/man3/pthread_cleanup_pop.3 b/share/man/man3/pthread_cleanup_pop.3 index 519e53f..2b7756a 100644 --- a/share/man/man3/pthread_cleanup_pop.3 +++ b/share/man/man3/pthread_cleanup_pop.3 @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 30, 1998 +.Dd October 25, 2014 .Dt PTHREAD_CLEANUP_POP 3 .Os .Sh NAME @@ -50,6 +50,14 @@ If there is no cleanup routine then .Fn pthread_cleanup_pop does nothing. +.Pp +The +.Fn pthread_cleanup_pop +function is implemented as a macro that closes a block. +Invocations of this function must appear as standalone statements that are +paired with an earlier call of +.Xr pthread_cleanup_push 3 +in the same lexical scope. .Sh RETURN VALUES The .Fn pthread_cleanup_pop diff --git a/share/man/man3/pthread_cleanup_push.3 b/share/man/man3/pthread_cleanup_push.3 index 2790987..47f35db 100644 --- a/share/man/man3/pthread_cleanup_push.3 +++ b/share/man/man3/pthread_cleanup_push.3 @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 30, 1998 +.Dd October 25, 2014 .Dt PTHREAD_CLEANUP_PUSH 3 .Os .Sh NAME @@ -52,6 +52,14 @@ When is called, it is passed .Fa arg as its only argument. +.Pp +The +.Fn pthread_cleanup_push +function is implemented as a macro that opens a new block. +Invocations of this function must appear as standalone statements that are +paired with a later call of +.Xr pthread_cleanup_pop 3 +in the same lexical scope. .Sh RETURN VALUES The .Fn pthread_cleanup_push -- cgit v1.1