diff options
author | MarcoFalke <falke.marco@gmail.com> | 2021-05-12 08:51:23 +0200 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2021-05-12 08:51:32 +0200 |
commit | 2e30e328a7a46e0405664fd0cb31d971171f71d1 (patch) | |
tree | 7ef6404f45b2218500e9d81dba07999e6493b2de /src/util/thread.cpp | |
parent | 03e16cb02730a1df5c367b7fd7a81f62a6d1b90d (diff) | |
parent | 792be53d3e9e366b9f6aeee7a1eeb912fa28062e (diff) | |
download | bitcoin-2e30e328a7a46e0405664fd0cb31d971171f71d1.tar.xz |
Merge bitcoin/bitcoin#19064: refactor: Cleanup thread ctor calls
792be53d3e9e366b9f6aeee7a1eeb912fa28062e refactor: Replace std::bind with lambdas (Hennadii Stepanov)
a508f718f3e087c96a306399582a85df2e1d53ae refactor: Use appropriate thread constructor (Hennadii Stepanov)
30e44482152488a78f2c495798a75e6f553dc0c8 refactor: Make TraceThread a non-template free function (Hennadii Stepanov)
Pull request description:
This PR does not change behavior.
Its goal is to improve readability and maintainability of the code.
ACKs for top commit:
jnewbery:
utACK 792be53d3e9e366b9f6aeee7a1eeb912fa28062e
jonatack:
tACK 792be53d3e9e366b9f6aeee7a1eeb912fa28062e
MarcoFalke:
cr ACK 792be53d3e9e366b9f6aeee7a1eeb912fa28062e
Tree-SHA512: a03142f04f370f6bc02bd3ddfa870819b51740fcd028772241d68c84087f95a2d78207cbd5edb3f7c636fcf2d76192d9c59873f8f0af451d3b05c0cf9cf234df
Diffstat (limited to 'src/util/thread.cpp')
-rw-r--r-- | src/util/thread.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/util/thread.cpp b/src/util/thread.cpp new file mode 100644 index 0000000000..14be668685 --- /dev/null +++ b/src/util/thread.cpp @@ -0,0 +1,27 @@ +// Copyright (c) 2021 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include <util/thread.h> + +#include <logging.h> +#include <util/system.h> +#include <util/threadnames.h> + +#include <exception> + +void util::TraceThread(const char* thread_name, std::function<void()> thread_func) +{ + util::ThreadRename(thread_name); + try { + LogPrintf("%s thread start\n", thread_name); + thread_func(); + LogPrintf("%s thread exit\n", thread_name); + } catch (const std::exception& e) { + PrintExceptionContinue(&e, thread_name); + throw; + } catch (...) { + PrintExceptionContinue(nullptr, thread_name); + throw; + } +} |