From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 12606 invoked from network); 20 May 2021 13:04:53 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 20 May 2021 13:04:53 -0000 Received: (qmail 19469 invoked by uid 550); 20 May 2021 13:04:49 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 18422 invoked from network); 20 May 2021 13:04:48 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=agner.ch; s=dkim; t=1621515876; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VbjXqwzflscT6GhVqGq4Wl0YtKeLqBZzXUfPID17ZkU=; b=DZpQ7p+ESj2QXljAOIumO2ZmeApYaaWIYTxteLvH/IIUY89ZyAPBqbdx3Wd71rFxRaquwN ussDwCVY2yDwLfoSIa9CtwY+3lS433SihKIlSCoeN4bptCZqM+PTaBIGFDTZxmTYJlyspR sQCkHazXk09GH1KNuuYKDUZ5JETOoVI= MIME-Version: 1.0 Date: Thu, 20 May 2021 15:04:36 +0200 From: Stefan Agner To: musl@lists.openwall.com Cc: =?UTF-8?Q?=C3=89rico_Rolim?= In-Reply-To: <20210420191519.23822-1-ericonr@disroot.org> References: <20210420191519.23822-1-ericonr@disroot.org> User-Agent: Roundcube Webmail/1.4.9 Message-ID: <68dedc6479ed7a6bbce271a6de3fba6c@agner.ch> X-Sender: stefan@agner.ch Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: Re: [musl] [PATCH] add pthread_getname_np function Hi, On 2021-04-20 21:15, Érico Nogueira wrote: > From: Érico Rolim > > based on the pthread_setname_np implementation > --- > > I might have forgotten to send this final version here > > include/pthread.h | 1 + > src/thread/pthread_getname_np.c | 25 +++++++++++++++++++++++++ > 2 files changed, 26 insertions(+) > create mode 100644 src/thread/pthread_getname_np.c > > diff --git a/include/pthread.h b/include/pthread.h > index 0492f26a..89fd9ff7 100644 > --- a/include/pthread.h > +++ b/include/pthread.h > @@ -221,6 +221,7 @@ int pthread_getaffinity_np(pthread_t, size_t, > struct cpu_set_t *); > int pthread_setaffinity_np(pthread_t, size_t, const struct cpu_set_t *); > int pthread_getattr_np(pthread_t, pthread_attr_t *); > int pthread_setname_np(pthread_t, const char *); > +int pthread_getname_np(pthread_t, char *, size_t); > int pthread_getattr_default_np(pthread_attr_t *); > int pthread_setattr_default_np(const pthread_attr_t *); > int pthread_tryjoin_np(pthread_t, void **); > diff --git a/src/thread/pthread_getname_np.c b/src/thread/pthread_getname_np.c > new file mode 100644 > index 00000000..48d1a294 > --- /dev/null > +++ b/src/thread/pthread_getname_np.c > @@ -0,0 +1,25 @@ > +#define _GNU_SOURCE > +#include > +#include > +#include > + > +#include "pthread_impl.h" > + > +int pthread_getname_np(pthread_t thread, char *name, size_t len) > +{ > + int fd, cs, status = 0; > + char f[sizeof "/proc/self/task//comm" + 3*sizeof(int)]; > + > + if (len < 16) return ERANGE; > + > + if (thread == pthread_self()) > + return prctl(PR_GET_NAME, (unsigned long)name, 0UL, 0UL, 0UL) ? errno : 0; > + > + snprintf(f, sizeof f, "/proc/self/task/%d/comm", thread->tid); > + pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs); > + if ((fd = open(f, O_RDONLY|O_CLOEXEC)) < 0 || (len = read(fd, name, > len)) < 0) status = errno; > + else name[len-1] = 0; /* remove trailing new line only if successful */ It seems that Linux indeed always adds a newline, so removing it unconditionally seems fine. > + if (fd >= 0) close(fd); > + pthread_setcancelstate(cs, 0); > + return status; > +} Looks good to me: Reviewed-by: Stefan Agner FWIW, We carry basically the same patch for musl to build TensorFlow and I was about to post it. -- Stefan