diff options
| author | Wladimir J. van der Laan <[email protected]> | 2019-10-03 20:50:13 +0200 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2019-10-03 20:51:00 +0200 |
| commit | 47150377967e570c9a81cfa4952f7d3114b1ca83 (patch) | |
| tree | 583e4f236511295a94025a7912d97bc5fa85821b | |
| parent | Merge #17040: ci: Make apt-get more verbose, to debug travis timeouts (diff) | |
| parent | Don't rename main thread at process level (diff) | |
| download | discoin-47150377967e570c9a81cfa4952f7d3114b1ca83.tar.xz discoin-47150377967e570c9a81cfa4952f7d3114b1ca83.zip | |
Merge #17038: Don't rename main thread at process level
07e4bdba3bd46c3a15dedb0a2660453c300643dc 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 ACK 07e4bdba3bd46c3a15dedb0a2660453c300643dc, `killall bitcoind` and `killall bitcoin-qt` now just works!
jonatack:
ACK 07e4bdba3bd46c3a15dedb0a2660453c300643dc `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
| -rw-r--r-- | src/bitcoind.cpp | 2 | ||||
| -rw-r--r-- | src/qt/bitcoin.cpp | 2 | ||||
| -rw-r--r-- | src/util/threadnames.cpp | 5 | ||||
| -rw-r--r-- | src/util/threadnames.h | 5 |
4 files changed, 12 insertions, 2 deletions
diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp index 615b955f6..17989a421 100644 --- a/src/bitcoind.cpp +++ b/src/bitcoind.cpp @@ -45,7 +45,7 @@ static bool AppInit(int argc, char* argv[]) bool fRet = false; - util::ThreadRename("init"); + util::ThreadSetInternalName("init"); // // Parameters diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index ec6075c8f..86f4dc91a 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -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(); diff --git a/src/util/threadnames.cpp b/src/util/threadnames.cpp index c25e9ed66..168f9325d 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 aaf07b9bf..69a1b55bf 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(); |