diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp --- a/src/bitcoind.cpp +++ b/src/bitcoind.cpp @@ -73,7 +73,7 @@ bool fRet = false; - util::ThreadRename("init"); + util::ThreadSetInternalName("init"); // // Parameters diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -517,7 +517,7 @@ std::tie(argc, argv) = winArgs.get(); #endif SetupEnvironment(); - util::ThreadRename("main"); + util::ThreadSetInternalName("main"); std::unique_ptr node = interfaces::MakeNode(); diff --git a/src/util/threadnames.h b/src/util/threadnames.h --- 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(); diff --git a/src/util/threadnames.cpp b/src/util/threadnames.cpp --- a/src/util/threadnames.cpp +++ b/src/util/threadnames.cpp @@ -49,3 +49,7 @@ SetThreadName(("b-" + name).c_str()); SetInternalName(std::move(name)); } + +void util::ThreadSetInternalName(std::string &&name) { + SetInternalName(std::move(name)); +}