aboutsummaryrefslogtreecommitdiff
path: root/src/util/thread.cpp
diff options
context:
space:
mode:
authorHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2021-04-13 20:44:46 +0300
committerHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2021-04-25 12:28:44 +0300
commit30e44482152488a78f2c495798a75e6f553dc0c8 (patch)
tree3a23901c0ed8c22ebad5cf8451be272f72fd2989 /src/util/thread.cpp
parenta1f0b8b62eb851c837a3618583b7c2fd4d12006c (diff)
downloadbitcoin-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.cpp27
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;
+ }
+}