From: Kefu Chai Date: Fri, 19 Feb 2021 07:33:40 +0000 (+0800) Subject: common: s/prctl/pthread_getname_np/ for better portability X-Git-Tag: v17.1.0~2871^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a0e48031c4d0ba956b099daf516cc29217072fc7;p=ceph.git common: s/prctl/pthread_getname_np/ for better portability prctl() is linux specific, let's use pthread_getname_np for thread names. Signed-off-by: Kefu Chai --- diff --git a/src/common/code_environment.cc b/src/common/code_environment.cc index a821dfcdeace..3b1ead77e69d 100644 --- a/src/common/code_environment.cc +++ b/src/common/code_environment.cc @@ -18,8 +18,8 @@ #include "acconfig.h" -#ifdef HAVE_SYS_PRCTL_H -#include +#ifdef HAVE_PTHREAD_GETNAME_NP +#include #endif #include @@ -46,19 +46,18 @@ std::ostream &operator<<(std::ostream &oss, const enum code_environment_t e) return oss; } -#if defined(HAVE_SYS_PRCTL_H) && defined(PR_GET_NAME) /* Since 2.6.11 */ +#if defined(HAVE_PTHREAD_GETNAME_NP) && !defined(_WIN32) int get_process_name(char *buf, int len) { if (len <= 16) { - /* The man page discourages using this prctl with a buffer shorter - * than 16 bytes. With a 16-byte buffer, it might not be - * null-terminated. */ + // The man page discourages using pthread_getname_np() with a buffer shorter + // than 16 bytes. With a 16-byte buffer, it might not be null-terminated. return -ENAMETOOLONG; } // FIPS zeroization audit 20191115: this memset is not security related. memset(buf, 0, len); - return prctl(PR_GET_NAME, buf); + return pthread_getname_np(pthread_self(), buf, len); } #elif defined(HAVE_GETPROGNAME)