From b615a97e01b25d5d3367cac52dfa460aeb10ec8a Mon Sep 17 00:00:00 2001 From: Michael Kerrisk Date: Sat, 2 Feb 2013 22:00:40 +0100 Subject: [PATCH] pthread_setname_np.3: Rework error handing in example program Signed-off-by: Michael Kerrisk --- man3/pthread_setname_np.3 | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/man3/pthread_setname_np.3 b/man3/pthread_setname_np.3 index ef72d8efe..dfcff535c 100644 --- a/man3/pthread_setname_np.3 +++ b/man3/pthread_setname_np.3 @@ -98,7 +98,6 @@ Done \& .nf #define _GNU_SOURCE - #include #include #include @@ -109,13 +108,12 @@ Done #define NAMELEN 16 #define errExitEN(en, msg) \\ - do { if(en) { errno = en; perror(msg); \\ - exit(EXIT_FAILURE);} \\ + do { errno = en; perror(msg); exit(EXIT_FAILURE); \\ } while (0) static void *threadfunc(void *parm) { - sleep(5); // allow main program to set the thread name + sleep(5); // allow main program to set the thread name return NULL; } @@ -126,27 +124,33 @@ int main(int argc, char **argv) char thread_name[NAMELEN]; rc = pthread_create(&thread, NULL, threadfunc, NULL); - errExitEN(rc, "pthread_create"); + if (rc != 0) + errExitEN(rc, "pthread_create"); rc = pthread_getname_np(thread, thread_name, NAMELEN); - errExitEN(rc, "pthread_getname_np"); - printf("Created a thread. Default name is: %s\\n", thread_name); + if (rc != 0) + errExitEN(rc, "pthread_getname_np"); + printf("Created a thread. Default name is: %s\\n", thread_name); rc = pthread_setname_np(thread, (argc > 1) ? argv[1] : "THREADFOO"); - errExitEN(rc, "pthread_setname_np"); + if (rc != 0) + errExitEN(rc, "pthread_setname_np"); sleep(2); - + rc = pthread_getname_np(thread, thread_name, NAMELEN); - errExitEN(rc, "pthread_getname_np"); + if (rc != 0) + errExitEN(rc, "pthread_getname_np"); printf("The thread name after setting it is %s.\\n", thread_name); - + rc = pthread_join(thread, NULL); - errExitEN(rc, "pthread_join"); - + if (rc != 0) + errExitEN(rc, "pthread_join"); + printf("Done\\n"); exit(EXIT_SUCCESS); } + .fi .SH SEE ALSO .ad l