mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-25 10:43:19 -03:00
Merge #17038: Don't rename main thread at process level
07e4bdba3b
Don't rename main thread at process level (Wladimir J. van der Laan) Pull request description: Set only the internal name for the main threads. Fixes #17036 for both `bitcoind` and `bitcoin-qt`. After this, e.g. `killall` works again for either. ACKs for top commit: promag: Tested ACK07e4bdba3b
, `killall bitcoind` and `killall bitcoin-qt` now just works! jonatack: ACK07e4bdba3b
`killall bitcoind` shuts down bitcoind mainnet/testnet/regtest, `killall bitcoin-qt` shuts down `./src/qt/bitcoin-qt`, tests pass, very light code review. Good idea to add the `@note` warning. Thanks! Tree-SHA512: 8f310ae646c83a02de7cc6869aa9aca1d53613d8fb762d05e3dfa52e17ca82abeb99044564cf7ba45b3c4b320e65bf8315d0e8834a9e696f097be5af638c6fd9
This commit is contained in:
commit
4715037796
4 changed files with 12 additions and 2 deletions
|
@ -45,7 +45,7 @@ static bool AppInit(int argc, char* argv[])
|
|||
|
||||
bool fRet = false;
|
||||
|
||||
util::ThreadRename("init");
|
||||
util::ThreadSetInternalName("init");
|
||||
|
||||
//
|
||||
// Parameters
|
||||
|
|
|
@ -416,7 +416,7 @@ int GuiMain(int argc, char* argv[])
|
|||
std::tie(argc, argv) = winArgs.get();
|
||||
#endif
|
||||
SetupEnvironment();
|
||||
util::ThreadRename("main");
|
||||
util::ThreadSetInternalName("main");
|
||||
|
||||
std::unique_ptr<interfaces::Node> node = interfaces::MakeNode();
|
||||
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Add table
Reference in a new issue