pthread_setname_np.3: Rework error handing in example program

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Michael Kerrisk 2013-02-02 22:00:40 +01:00
parent 91e38d87e0
commit b615a97e01
1 changed files with 17 additions and 13 deletions

View File

@ -98,7 +98,6 @@ Done
\&
.nf
#define _GNU_SOURCE
#include <pthread.h>
#include <stdio.h>
#include <string.h>
@ -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