Bitcoin Core
32.1.0
P2P Digital Currency
Toggle main menu visibility
Loading...
Searching...
No Matches
src
util
thread.cpp
Go to the documentation of this file.
1
// Copyright (c) 2021-present 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 <
util/exception.h
>
8
#include <
util/log.h
>
9
#include <
util/threadnames.h
>
10
11
#include <exception>
12
#include <functional>
13
#include <string>
14
15
void
util::TraceThread
(std::string_view thread_name, std::function<
void
()> thread_func)
16
{
17
util::ThreadRename
(std::string{thread_name});
18
try
{
19
LogInfo
(
"%s thread start"
, thread_name);
20
thread_func();
21
LogInfo
(
"%s thread exit"
, thread_name);
22
}
catch
(
const
std::exception& e) {
23
PrintExceptionContinue
(&e, thread_name);
24
throw
;
25
}
catch
(...) {
26
PrintExceptionContinue
(
nullptr
, thread_name);
27
throw
;
28
}
29
}
PrintExceptionContinue
void PrintExceptionContinue(const std::exception *pex, std::string_view thread_name)
Definition
exception.cpp:36
log.h
LogInfo
#define LogInfo(...)
Definition
log.h:125
util::ThreadRename
void ThreadRename(const std::string &)
Definition
threadnames.cpp:66
util::TraceThread
void TraceThread(std::string_view thread_name, std::function< void()> thread_func)
A wrapper for do-something-once thread functions.
Definition
thread.cpp:15
thread.h
threadnames.h
exception.h
Generated on
for Bitcoin Core by
1.18.0