prctl() can be used to set the same attribute set by
pthread_setname_np, but doesn't introduce a dependency on a newer
glibc. Using prctl(PR_SET_NAME) introduces a soft dependency on
Linux 2.6.9. However, the worker won't fail to launch if the call
fails as it is set out of convenience (debugger output).
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
#include <sched.h>
#include <sys/signal.h>
#include <assert.h>
+#include <sys/prctl.h>
#include <common/common.h>
#include <common/utils.h>
memset(worker->procname, 0, proc_orig_len);
strncpy(worker->procname, DEFAULT_RUN_AS_WORKER_NAME, proc_orig_len);
- ret = pthread_setname_np(pthread_self(), DEFAULT_RUN_AS_WORKER_NAME);
+ ret = prctl(PR_SET_NAME, DEFAULT_RUN_AS_WORKER_NAME, 0, 0, 0);
if (ret) {
- errno = ret;
- ret = -1;
- PERROR("pthread_setname_np");
- return EXIT_FAILURE;
+ /* Don't fail as this is not essential. */
+ PERROR("prctl PR_SET_NAME");
+ ret = 0;
}
sendret.ret = 0;