diff options
author | Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> | 2021-04-13 20:44:46 +0300 |
---|---|---|
committer | Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> | 2021-04-25 12:28:44 +0300 |
commit | 30e44482152488a78f2c495798a75e6f553dc0c8 (patch) | |
tree | 3a23901c0ed8c22ebad5cf8451be272f72fd2989 /src/util/thread.cpp | |
parent | a1f0b8b62eb851c837a3618583b7c2fd4d12006c (diff) | |
download | bitcoin-30e44482152488a78f2c495798a75e6f553dc0c8.tar.xz |
refactor: Make TraceThread a non-template free function
Also it is moved into its own module.
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; + } +} |