Bitcoin ABC
0.30.5
P2P Digital Currency
src
util
thread.cpp
Go to the documentation of this file.
1
// Copyright (c) 2021 The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#include <
util/thread.h
>
6
7
#include <
logging.h
>
8
#include <
util/exception.h
>
9
#include <
util/threadnames.h
>
10
11
#include <exception>
12
13
void
util::TraceThread
(
const
char
*thread_name,
14
std::function<
void
()> thread_func) {
15
util::ThreadRename
(thread_name);
16
try
{
17
LogPrintf
(
"%s thread start\n"
, thread_name);
18
thread_func();
19
LogPrintf
(
"%s thread exit\n"
, thread_name);
20
}
catch
(
const
std::exception &e) {
21
PrintExceptionContinue
(&e, thread_name);
22
throw
;
23
}
catch
(...) {
24
PrintExceptionContinue
(
nullptr
, thread_name);
25
throw
;
26
}
27
}
PrintExceptionContinue
void PrintExceptionContinue(const std::exception *pex, const char *pszThread)
Definition:
exception.cpp:38
exception.h
logging.h
LogPrintf
#define LogPrintf(...)
Definition:
logging.h:207
util::TraceThread
void TraceThread(const char *thread_name, std::function< void()> thread_func)
A wrapper for do-something-once thread functions.
Definition:
thread.cpp:13
util::ThreadRename
void ThreadRename(std::string &&)
Rename a thread both in terms of an internal (in-memory) name as well as its system thread name.
Definition:
threadnames.cpp:48
thread.h
threadnames.h
Generated on Wed Nov 20 2024 17:55:59 for Bitcoin ABC by
1.9.4