From 07e4bdba3bd46c3a15dedb0a2660453c300643dc Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Thu, 3 Oct 2019 06:08:52 +0200 Subject: Don't rename main thread at process level Set only the internal name. Fixes #17036 for both `bitcoind` and `bitcoin-qt`. --- src/util/threadnames.cpp | 5 +++++ src/util/threadnames.h | 5 +++++ 2 files changed, 10 insertions(+) (limited to 'src/util') diff --git a/src/util/threadnames.cpp b/src/util/threadnames.cpp index c25e9ed661..168f9325d0 100644 --- a/src/util/threadnames.cpp +++ b/src/util/threadnames.cpp @@ -60,3 +60,8 @@ void util::ThreadRename(std::string&& name) SetThreadName(("b-" + name).c_str()); SetInternalName(std::move(name)); } + +void util::ThreadSetInternalName(std::string&& name) +{ + SetInternalName(std::move(name)); +} diff --git a/src/util/threadnames.h b/src/util/threadnames.h index aaf07b9bf8..69a1b55bfe 100644 --- a/src/util/threadnames.h +++ b/src/util/threadnames.h @@ -10,8 +10,13 @@ namespace util { //! Rename a thread both in terms of an internal (in-memory) name as well //! as its system thread name. +//! @note Do not call this for the main thread, as this will interfere with +//! UNIX utilities such as top and killall. Use ThreadSetInternalName instead. void ThreadRename(std::string&&); +//! Set the internal (in-memory) name of the current thread only. +void ThreadSetInternalName(std::string&&); + //! Get the thread's internal (in-memory) name; used e.g. for identification in //! logging. const std::string& ThreadGetInternalName(); -- cgit v1.2.3