Coverage Report

Created: 2026-04-29 19:21

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/tmp/bitcoin/src/sync.h
Line
Count
Source
1
// Copyright (c) 2009-2010 Satoshi Nakamoto
2
// Copyright (c) 2009-present The Bitcoin Core developers
3
// Distributed under the MIT software license, see the accompanying
4
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
6
#ifndef BITCOIN_SYNC_H
7
#define BITCOIN_SYNC_H
8
9
// This header declares threading primitives compatible with Clang
10
// Thread Safety Analysis and provides appropriate annotation macros.
11
#include <threadsafety.h> // IWYU pragma: export
12
#include <util/macros.h>
13
14
#include <cassert>
15
#include <condition_variable>
16
#include <mutex>
17
#include <string>
18
#include <thread>
19
20
////////////////////////////////////////////////
21
//                                            //
22
// THE SIMPLE DEFINITION, EXCLUDING DEBUG CODE //
23
//                                            //
24
////////////////////////////////////////////////
25
26
/*
27
RecursiveMutex mutex;
28
    std::recursive_mutex mutex;
29
30
LOCK(mutex);
31
    std::unique_lock<std::recursive_mutex> criticalblock(mutex);
32
33
LOCK2(mutex1, mutex2);
34
    std::unique_lock<std::recursive_mutex> criticalblock1(mutex1);
35
    std::unique_lock<std::recursive_mutex> criticalblock2(mutex2);
36
37
TRY_LOCK(mutex, name);
38
    std::unique_lock<std::recursive_mutex> name(mutex, std::try_to_lock_t);
39
 */
40
41
///////////////////////////////
42
//                           //
43
// THE ACTUAL IMPLEMENTATION //
44
//                           //
45
///////////////////////////////
46
47
#ifdef DEBUG_LOCKORDER
48
template <typename MutexType>
49
void EnterCritical(const char* pszName, const char* pszFile, int nLine, MutexType* cs, bool fTry = false);
50
void LeaveCritical();
51
void CheckLastCritical(void* cs, std::string& lockname, const char* guardname, const char* file, int line);
52
template <typename MutexType>
53
void AssertLockHeldInternal(const char* pszName, const char* pszFile, int nLine, MutexType* cs) EXCLUSIVE_LOCKS_REQUIRED(cs);
54
template <typename MutexType>
55
void AssertLockNotHeldInternal(const char* pszName, const char* pszFile, int nLine, MutexType* cs) LOCKS_EXCLUDED(cs);
56
void DeleteLock(void* cs);
57
bool LockStackEmpty();
58
59
/**
60
 * Call abort() if a potential lock order deadlock bug is detected, instead of
61
 * just logging information and throwing a logic_error. Defaults to true, and
62
 * set to false in DEBUG_LOCKORDER unit tests.
63
 */
64
extern bool g_debug_lockorder_abort;
65
#else
66
template <typename MutexType>
67
inline void EnterCritical(const char* pszName, const char* pszFile, int nLine, MutexType* cs, bool fTry = false) {}
68
inline void LeaveCritical() {}
69
inline void CheckLastCritical(void* cs, std::string& lockname, const char* guardname, const char* file, int line) {}
70
template <typename MutexType>
71
inline void AssertLockHeldInternal(const char* pszName, const char* pszFile, int nLine, MutexType* cs) EXCLUSIVE_LOCKS_REQUIRED(cs) {}
72
template <typename MutexType>
73
void AssertLockNotHeldInternal(const char* pszName, const char* pszFile, int nLine, MutexType* cs) LOCKS_EXCLUDED(cs) {}
74
inline void DeleteLock(void* cs) {}
75
inline bool LockStackEmpty() { return true; }
76
#endif
77
78
/*
79
 * Called when a mutex fails to lock immediately because it is held by another
80
 * thread, or spuriously. Responsible for locking the lock before returning.
81
 */
82
#ifdef DEBUG_LOCKCONTENTION
83
84
template <typename LockType>
85
void ContendedLock(std::string_view name, std::string_view file, int nLine, LockType& lock);
86
#endif
87
88
/**
89
 * Template mixin that adds -Wthread-safety locking annotations and lock order
90
 * checking to a subset of the mutex API.
91
 */
92
template <typename PARENT>
93
class LOCKABLE AnnotatedMixin : public PARENT
94
{
95
public:
96
149k
    ~AnnotatedMixin() {
97
149k
        DeleteLock((void*)this);
98
149k
    }
AnnotatedMixin<std::mutex>::~AnnotatedMixin()
Line
Count
Source
96
133k
    ~AnnotatedMixin() {
97
133k
        DeleteLock((void*)this);
98
133k
    }
AnnotatedMixin<std::recursive_mutex>::~AnnotatedMixin()
Line
Count
Source
96
15.9k
    ~AnnotatedMixin() {
97
15.9k
        DeleteLock((void*)this);
98
15.9k
    }
99
100
    void lock() EXCLUSIVE_LOCK_FUNCTION()
101
    {
102
        PARENT::lock();
103
    }
104
105
    void unlock() UNLOCK_FUNCTION()
106
    {
107
        PARENT::unlock();
108
    }
109
110
    bool try_lock() EXCLUSIVE_TRYLOCK_FUNCTION(true)
111
200
    {
112
200
        return PARENT::try_lock();
113
200
    }
114
115
    using unique_lock = std::unique_lock<PARENT>;
116
#ifdef __clang__
117
    //! For negative capabilities in the Clang Thread Safety Analysis.
118
    //! A negative requirement uses the EXCLUSIVE_LOCKS_REQUIRED attribute, in conjunction
119
    //! with the ! operator, to indicate that a mutex should not be held.
120
    const AnnotatedMixin& operator!() const { return *this; }
121
#endif // __clang__
122
};
123
124
/**
125
 * Wrapped mutex: supports recursive locking, but no waiting
126
 * TODO: We should move away from using the recursive lock by default.
127
 */
128
using RecursiveMutex = AnnotatedMixin<std::recursive_mutex>;
129
130
/** Wrapped mutex: supports waiting but not recursive locking */
131
using Mutex = AnnotatedMixin<std::mutex>;
132
133
/** Different type to mark Mutex at global scope
134
 *
135
 * Thread safety analysis can't handle negative assertions about mutexes
136
 * with global scope well, so mark them with a separate type, and
137
 * eventually move all the mutexes into classes so they are not globally
138
 * visible.
139
 *
140
 * See: https://github.com/bitcoin/bitcoin/pull/20272#issuecomment-720755781
141
 */
142
class GlobalMutex : public Mutex { };
143
144
67.0M
#define AssertLockHeld(cs) AssertLockHeldInternal(#cs, __FILE__, __LINE__, &cs)
145
146
5.32M
inline void AssertLockNotHeldInline(const char* name, const char* file, int line, Mutex* cs) EXCLUSIVE_LOCKS_REQUIRED(!cs) { AssertLockNotHeldInternal(name, file, line, cs); }
147
891k
inline void AssertLockNotHeldInline(const char* name, const char* file, int line, RecursiveMutex* cs) LOCKS_EXCLUDED(cs) { AssertLockNotHeldInternal(name, file, line, cs); }
148
0
inline void AssertLockNotHeldInline(const char* name, const char* file, int line, GlobalMutex* cs) LOCKS_EXCLUDED(cs) { AssertLockNotHeldInternal(name, file, line, cs); }
149
6.21M
#define AssertLockNotHeld(cs) AssertLockNotHeldInline(#cs, __FILE__, __LINE__, &cs)
150
151
/** Wrapper around std::unique_lock style lock for MutexType. */
152
template <typename MutexType>
153
class SCOPED_LOCKABLE UniqueLock : public MutexType::unique_lock
154
{
155
private:
156
    using Base = typename MutexType::unique_lock;
157
158
    void Enter(const char* pszName, const char* pszFile, int nLine)
159
81.1M
    {
160
81.1M
        EnterCritical(pszName, pszFile, nLine, Base::mutex());
161
81.1M
#ifdef DEBUG_LOCKCONTENTION
162
81.1M
        if (!Base::try_lock()) {
163
665k
            ContendedLock(pszName, pszFile, nLine, static_cast<Base&>(*this));
164
665k
        }
165
#else
166
        Base::lock();
167
#endif
168
81.1M
    }
UniqueLock<AnnotatedMixin<std::mutex>>::Enter(char const*, char const*, int)
Line
Count
Source
159
31.3M
    {
160
31.3M
        EnterCritical(pszName, pszFile, nLine, Base::mutex());
161
31.3M
#ifdef DEBUG_LOCKCONTENTION
162
31.3M
        if (!Base::try_lock()) {
163
576k
            ContendedLock(pszName, pszFile, nLine, static_cast<Base&>(*this));
164
576k
        }
165
#else
166
        Base::lock();
167
#endif
168
31.3M
    }
UniqueLock<AnnotatedMixin<std::recursive_mutex>>::Enter(char const*, char const*, int)
Line
Count
Source
159
49.4M
    {
160
49.4M
        EnterCritical(pszName, pszFile, nLine, Base::mutex());
161
49.4M
#ifdef DEBUG_LOCKCONTENTION
162
49.4M
        if (!Base::try_lock()) {
163
89.6k
            ContendedLock(pszName, pszFile, nLine, static_cast<Base&>(*this));
164
89.6k
        }
165
#else
166
        Base::lock();
167
#endif
168
49.4M
    }
UniqueLock<GlobalMutex>::Enter(char const*, char const*, int)
Line
Count
Source
159
403k
    {
160
403k
        EnterCritical(pszName, pszFile, nLine, Base::mutex());
161
403k
#ifdef DEBUG_LOCKCONTENTION
162
403k
        if (!Base::try_lock()) {
163
0
            ContendedLock(pszName, pszFile, nLine, static_cast<Base&>(*this));
164
0
        }
165
#else
166
        Base::lock();
167
#endif
168
403k
    }
169
170
    bool TryEnter(const char* pszName, const char* pszFile, int nLine)
171
1.13k
    {
172
1.13k
        EnterCritical(pszName, pszFile, nLine, Base::mutex(), true);
173
1.13k
        if (Base::try_lock()) {
174
1.13k
            return true;
175
1.13k
        }
176
0
        LeaveCritical();
177
0
        return false;
178
1.13k
    }
UniqueLock<AnnotatedMixin<std::mutex>>::TryEnter(char const*, char const*, int)
Line
Count
Source
171
1.13k
    {
172
1.13k
        EnterCritical(pszName, pszFile, nLine, Base::mutex(), true);
173
1.13k
        if (Base::try_lock()) {
174
1.13k
            return true;
175
1.13k
        }
176
0
        LeaveCritical();
177
0
        return false;
178
1.13k
    }
UniqueLock<AnnotatedMixin<std::recursive_mutex>>::TryEnter(char const*, char const*, int)
Line
Count
Source
171
2
    {
172
2
        EnterCritical(pszName, pszFile, nLine, Base::mutex(), true);
173
2
        if (Base::try_lock()) {
174
2
            return true;
175
2
        }
176
0
        LeaveCritical();
177
0
        return false;
178
2
    }
Unexecuted instantiation: UniqueLock<GlobalMutex>::TryEnter(char const*, char const*, int)
179
180
public:
181
81.0M
    UniqueLock(MutexType& mutexIn, const char* pszName, const char* pszFile, int nLine, bool fTry = false) EXCLUSIVE_LOCK_FUNCTION(mutexIn) : Base(mutexIn, std::defer_lock)
182
81.0M
    {
183
81.0M
        if (fTry)
184
1.13k
            TryEnter(pszName, pszFile, nLine);
185
81.0M
        else
186
81.0M
            Enter(pszName, pszFile, nLine);
187
81.0M
    }
UniqueLock<AnnotatedMixin<std::mutex>>::UniqueLock(AnnotatedMixin<std::mutex>&, char const*, char const*, int, bool)
Line
Count
Source
181
31.3M
    UniqueLock(MutexType& mutexIn, const char* pszName, const char* pszFile, int nLine, bool fTry = false) EXCLUSIVE_LOCK_FUNCTION(mutexIn) : Base(mutexIn, std::defer_lock)
182
31.3M
    {
183
31.3M
        if (fTry)
184
1.13k
            TryEnter(pszName, pszFile, nLine);
185
31.3M
        else
186
31.3M
            Enter(pszName, pszFile, nLine);
187
31.3M
    }
UniqueLock<AnnotatedMixin<std::recursive_mutex>>::UniqueLock(AnnotatedMixin<std::recursive_mutex>&, char const*, char const*, int, bool)
Line
Count
Source
181
49.3M
    UniqueLock(MutexType& mutexIn, const char* pszName, const char* pszFile, int nLine, bool fTry = false) EXCLUSIVE_LOCK_FUNCTION(mutexIn) : Base(mutexIn, std::defer_lock)
182
49.3M
    {
183
49.3M
        if (fTry)
184
2
            TryEnter(pszName, pszFile, nLine);
185
49.3M
        else
186
49.3M
            Enter(pszName, pszFile, nLine);
187
49.3M
    }
UniqueLock<GlobalMutex>::UniqueLock(GlobalMutex&, char const*, char const*, int, bool)
Line
Count
Source
181
403k
    UniqueLock(MutexType& mutexIn, const char* pszName, const char* pszFile, int nLine, bool fTry = false) EXCLUSIVE_LOCK_FUNCTION(mutexIn) : Base(mutexIn, std::defer_lock)
182
403k
    {
183
403k
        if (fTry)
184
0
            TryEnter(pszName, pszFile, nLine);
185
403k
        else
186
403k
            Enter(pszName, pszFile, nLine);
187
403k
    }
188
189
    UniqueLock(MutexType* pmutexIn, const char* pszName, const char* pszFile, int nLine, bool fTry = false) EXCLUSIVE_LOCK_FUNCTION(pmutexIn)
190
128k
    {
191
128k
        if (!pmutexIn) return;
192
193
126k
        *static_cast<Base*>(this) = Base(*pmutexIn, std::defer_lock);
194
126k
        if (fTry)
195
0
            TryEnter(pszName, pszFile, nLine);
196
126k
        else
197
126k
            Enter(pszName, pszFile, nLine);
198
126k
    }
199
200
    ~UniqueLock() UNLOCK_FUNCTION()
201
83.3M
    {
202
83.3M
        if (Base::owns_lock())
203
81.1M
            LeaveCritical();
204
83.3M
    }
UniqueLock<AnnotatedMixin<std::mutex>>::~UniqueLock()
Line
Count
Source
201
33.4M
    {
202
33.4M
        if (Base::owns_lock())
203
31.3M
            LeaveCritical();
204
33.4M
    }
UniqueLock<AnnotatedMixin<std::recursive_mutex>>::~UniqueLock()
Line
Count
Source
201
49.5M
    {
202
49.5M
        if (Base::owns_lock())
203
49.4M
            LeaveCritical();
204
49.5M
    }
UniqueLock<GlobalMutex>::~UniqueLock()
Line
Count
Source
201
403k
    {
202
403k
        if (Base::owns_lock())
203
403k
            LeaveCritical();
204
403k
    }
205
206
    operator bool()
207
1.13k
    {
208
1.13k
        return Base::owns_lock();
209
1.13k
    }
UniqueLock<AnnotatedMixin<std::recursive_mutex>>::operator bool()
Line
Count
Source
207
2
    {
208
2
        return Base::owns_lock();
209
2
    }
UniqueLock<AnnotatedMixin<std::mutex>>::operator bool()
Line
Count
Source
207
1.13k
    {
208
1.13k
        return Base::owns_lock();
209
1.13k
    }
210
211
protected:
212
    // needed for reverse_lock
213
2.17M
    UniqueLock() = default;
UniqueLock<AnnotatedMixin<std::mutex>>::UniqueLock()
Line
Count
Source
213
2.10M
    UniqueLock() = default;
UniqueLock<AnnotatedMixin<std::recursive_mutex>>::UniqueLock()
Line
Count
Source
213
73.7k
    UniqueLock() = default;
214
215
public:
216
    /**
217
     * An RAII-style reverse lock. Unlocks on construction and locks on destruction.
218
     */
219
    class SCOPED_LOCKABLE reverse_lock {
220
    public:
221
2.17M
        explicit reverse_lock(UniqueLock& _lock, const MutexType& mutex, const char* _guardname, const char* _file, int _line) UNLOCK_FUNCTION(mutex) : lock(_lock), file(_file), line(_line) {
222
            // Ensure that mutex passed back for thread-safety analysis is indeed the original
223
2.17M
            assert(std::addressof(mutex) == lock.mutex());
224
225
2.17M
            CheckLastCritical((void*)lock.mutex(), lockname, _guardname, _file, _line);
226
2.17M
            lock.unlock();
227
2.17M
            LeaveCritical();
228
2.17M
            lock.swap(templock);
229
2.17M
        }
UniqueLock<AnnotatedMixin<std::mutex>>::reverse_lock::reverse_lock(UniqueLock<AnnotatedMixin<std::mutex>>&, AnnotatedMixin<std::mutex> const&, char const*, char const*, int)
Line
Count
Source
221
2.10M
        explicit reverse_lock(UniqueLock& _lock, const MutexType& mutex, const char* _guardname, const char* _file, int _line) UNLOCK_FUNCTION(mutex) : lock(_lock), file(_file), line(_line) {
222
            // Ensure that mutex passed back for thread-safety analysis is indeed the original
223
2.10M
            assert(std::addressof(mutex) == lock.mutex());
224
225
2.10M
            CheckLastCritical((void*)lock.mutex(), lockname, _guardname, _file, _line);
226
2.10M
            lock.unlock();
227
2.10M
            LeaveCritical();
228
2.10M
            lock.swap(templock);
229
2.10M
        }
UniqueLock<AnnotatedMixin<std::recursive_mutex>>::reverse_lock::reverse_lock(UniqueLock<AnnotatedMixin<std::recursive_mutex>>&, AnnotatedMixin<std::recursive_mutex> const&, char const*, char const*, int)
Line
Count
Source
221
73.7k
        explicit reverse_lock(UniqueLock& _lock, const MutexType& mutex, const char* _guardname, const char* _file, int _line) UNLOCK_FUNCTION(mutex) : lock(_lock), file(_file), line(_line) {
222
            // Ensure that mutex passed back for thread-safety analysis is indeed the original
223
73.7k
            assert(std::addressof(mutex) == lock.mutex());
224
225
73.7k
            CheckLastCritical((void*)lock.mutex(), lockname, _guardname, _file, _line);
226
73.7k
            lock.unlock();
227
73.7k
            LeaveCritical();
228
73.7k
            lock.swap(templock);
229
73.7k
        }
230
231
2.17M
        ~reverse_lock() UNLOCK_FUNCTION() {
232
2.17M
            templock.swap(lock);
233
2.17M
            EnterCritical(lockname.c_str(), file.c_str(), line, lock.mutex());
234
2.17M
            lock.lock();
235
2.17M
        }
UniqueLock<AnnotatedMixin<std::mutex>>::reverse_lock::~reverse_lock()
Line
Count
Source
231
2.10M
        ~reverse_lock() UNLOCK_FUNCTION() {
232
2.10M
            templock.swap(lock);
233
2.10M
            EnterCritical(lockname.c_str(), file.c_str(), line, lock.mutex());
234
2.10M
            lock.lock();
235
2.10M
        }
UniqueLock<AnnotatedMixin<std::recursive_mutex>>::reverse_lock::~reverse_lock()
Line
Count
Source
231
73.7k
        ~reverse_lock() UNLOCK_FUNCTION() {
232
73.7k
            templock.swap(lock);
233
73.7k
            EnterCritical(lockname.c_str(), file.c_str(), line, lock.mutex());
234
73.7k
            lock.lock();
235
73.7k
        }
236
237
     private:
238
        reverse_lock(reverse_lock const&);
239
        reverse_lock& operator=(reverse_lock const&);
240
241
        UniqueLock& lock;
242
        UniqueLock templock;
243
        std::string lockname;
244
        const std::string file;
245
        const int line;
246
     };
247
     friend class reverse_lock;
248
};
249
250
// clang's thread-safety analyzer is unable to deal with aliases of mutexes, so
251
// it is not possible to use the lock's copy of the mutex for that purpose.
252
// Instead, the original mutex needs to be passed back to the reverse_lock for
253
// the sake of thread-safety analysis, but it is not actually used otherwise.
254
2.17M
#define REVERSE_LOCK(g, cs) typename std::decay<decltype(g)>::type::reverse_lock UNIQUE_NAME(revlock)(g, cs, #cs, __FILE__, __LINE__)
255
256
// When locking a Mutex, require negative capability to ensure the lock
257
// is not already held
258
32.6M
inline Mutex& MaybeCheckNotHeld(Mutex& cs) EXCLUSIVE_LOCKS_REQUIRED(!cs) LOCK_RETURNED(cs) { return cs; }
259
0
inline Mutex* MaybeCheckNotHeld(Mutex* cs) EXCLUSIVE_LOCKS_REQUIRED(!cs) LOCK_RETURNED(cs) { return cs; }
260
261
// When locking a GlobalMutex or RecursiveMutex, just check it is not
262
// locked in the surrounding scope.
263
template <typename MutexType>
264
50.5M
inline MutexType& MaybeCheckNotHeld(MutexType& m) LOCKS_EXCLUDED(m) LOCK_RETURNED(m) { return m; }
AnnotatedMixin<std::recursive_mutex>& MaybeCheckNotHeld<AnnotatedMixin<std::recursive_mutex>>(AnnotatedMixin<std::recursive_mutex>&)
Line
Count
Source
264
50.1M
inline MutexType& MaybeCheckNotHeld(MutexType& m) LOCKS_EXCLUDED(m) LOCK_RETURNED(m) { return m; }
GlobalMutex& MaybeCheckNotHeld<GlobalMutex>(GlobalMutex&)
Line
Count
Source
264
403k
inline MutexType& MaybeCheckNotHeld(MutexType& m) LOCKS_EXCLUDED(m) LOCK_RETURNED(m) { return m; }
265
template <typename MutexType>
266
128k
inline MutexType* MaybeCheckNotHeld(MutexType* m) LOCKS_EXCLUDED(m) LOCK_RETURNED(m) { return m; }
267
268
72.3M
#define LOCK(cs) UniqueLock UNIQUE_NAME(criticalblock)(MaybeCheckNotHeld(cs), #cs, __FILE__, __LINE__)
269
#define LOCK2(cs1, cs2)                                               \
270
463k
    UniqueLock criticalblock1(MaybeCheckNotHeld(cs1), #cs1, __FILE__, __LINE__); \
271
463k
    UniqueLock criticalblock2(MaybeCheckNotHeld(cs2), #cs2, __FILE__, __LINE__)
272
7.79M
#define LOCK_ARGS(cs) MaybeCheckNotHeld(cs), #cs, __FILE__, __LINE__
273
1.13k
#define TRY_LOCK(cs, name) UniqueLock name(LOCK_ARGS(cs), true)
274
7.63M
#define WAIT_LOCK(cs, name) UniqueLock name(LOCK_ARGS(cs))
275
276
//! Run code while locking a mutex.
277
//!
278
//! Examples:
279
//!
280
//!   WITH_LOCK(cs, shared_val = shared_val + 1);
281
//!
282
//!   int val = WITH_LOCK(cs, return shared_val);
283
//!
284
//! Note:
285
//!
286
//! Since the return type deduction follows that of decltype(auto), while the
287
//! deduced type of:
288
//!
289
//!   WITH_LOCK(cs, int i = 1; return i);
290
//!
291
//! is int, the deduced type of:
292
//!
293
//!   WITH_LOCK(cs, int j = 1; return (j));
294
//!
295
//! is &int, a reference to a local variable
296
//!
297
//! The above is detectable at compile-time with the -Wreturn-local-addr flag in
298
//! gcc and the -Wreturn-stack-address flag in clang, both enabled by default.
299
1.98M
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockchain_tests.cpp:blockchain_tests::invalidate_block::test_method()::$_0::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockchain_tests.cpp:blockchain_tests::invalidate_block::test_method()::$_1::operator()() const
Line
Count
Source
299
2
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockchain_tests.cpp:blockchain_tests::invalidate_block::test_method()::$_2::operator()() const
Line
Count
Source
299
180
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockchain_tests.cpp:blockchain_tests::invalidate_block::test_method()::$_3::operator()() const
Line
Count
Source
299
180
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockchain_tests.cpp:blockchain_tests::invalidate_block::test_method()::$_4::operator()() const
Line
Count
Source
299
20
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockfilter_index_tests.cpp:blockfilter_index_tests::index_reorg_crash::test_method()::$_0::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockfilter_index_tests.cpp:blockfilter_index_tests::index_reorg_crash::test_method()::$_2::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockmanager_tests.cpp:blockmanager_tests::blockmanager_scan_unlink_already_pruned_files::test_method()::$_0::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockmanager_tests.cpp:blockmanager_tests::blockmanager_scan_unlink_already_pruned_files::test_method()::$_1::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockmanager_tests.cpp:blockmanager_tests::blockmanager_scan_unlink_already_pruned_files::test_method()::$_2::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockmanager_tests.cpp:blockmanager_tests::blockmanager_scan_unlink_already_pruned_files::test_method()::$_3::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockmanager_tests.cpp:blockmanager_tests::blockmanager_scan_unlink_already_pruned_files::test_method()::$_4::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockmanager_tests.cpp:blockmanager_tests::blockmanager_scan_unlink_already_pruned_files::test_method()::$_5::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockmanager_tests.cpp:blockmanager_tests::blockmanager_scan_unlink_already_pruned_files::test_method()::$_6::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
CCheckQueue<FakeCheckCheckCompletion, int>::~CCheckQueue()::'lambda'()::operator()() const
Line
Count
Source
299
4
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
CCheckQueue<FixedCheck, int>::~CCheckQueue()::'lambda'()::operator()() const
Line
Count
Source
299
2
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
CCheckQueue<UniqueCheck, int>::~CCheckQueue()::'lambda'()::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
CCheckQueue<MemoryCheck, int>::~CCheckQueue()::'lambda'()::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
CCheckQueue<FrozenCleanupCheck, int>::~CCheckQueue()::'lambda'()::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
CCheckQueue<FakeCheck, int>::~CCheckQueue()::'lambda'()::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
HeadersGeneratorSetup::chain_start::'lambda'()::operator()() const
Line
Count
Source
299
3
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
interfaces_tests.cpp:interfaces_tests::findCommonAncestor::test_method()::$_0::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
CScheduler::stop()::'lambda'()::operator()() const
Line
Count
Source
299
1.28k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
peerman_tests.cpp:peerman_tests::connections_desirable_service_flags::test_method()::$_0::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
CScheduler::StopWhenDrained()::'lambda'()::operator()() const
Line
Count
Source
299
2
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
testnet4_miner_tests.cpp:testnet4_miner_tests::MiningInterface::test_method()::$_0::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
ThreadPool::WorkersCount()::'lambda'()::operator()() const
Line
Count
Source
299
4.96k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
ThreadPool::Interrupt()::'lambda'()::operator()() const
Line
Count
Source
299
1.14k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
ThreadPool::WorkQueueSize()::'lambda'()::operator()() const
Line
Count
Source
299
171k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
CCheckQueue<CScriptCheck, std::pair<ScriptError_t, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>::~CCheckQueue()::'lambda'()::operator()() const
Line
Count
Source
299
1.19k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
txdownload_tests.cpp:txdownload_tests::handle_missing_inputs::test_method()::$_0::operator()() const
Line
Count
Source
299
8
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
txpackage_tests.cpp:txpackage_tests::package_cpfp_tests::test_method()::$_0::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
txvalidationcache_tests.cpp:txvalidationcache_tests::tx_mempool_block_doublespend::test_method()::$_1::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
txvalidationcache_tests.cpp:txvalidationcache_tests::tx_mempool_block_doublespend::test_method()::$_2::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_block_tests.cpp:validation_block_tests::MinerTestingSetup::Block(uint256 const&)::$_0::operator()() const
Line
Count
Source
299
829
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_block_tests.cpp:validation_block_tests::MinerTestingSetup::FinalizeBlock(std::shared_ptr<CBlock>)::$_0::operator()() const
Line
Count
Source
299
829
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstate_tests.cpp:validation_chainstate_tests::validation_chainstate_resize_caches::test_method()::$_0::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstate_tests.cpp:validation_chainstate_tests::validation_chainstate_resize_caches::test_method()::$_1::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstate_tests.cpp:validation_chainstate_tests::connect_tip_does_not_cache_inputs_on_failed_connect::test_method()::$_0::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstate_tests.cpp:bool CreateAndActivateUTXOSnapshot<$_4>(TestingSetup*, $_4, bool, bool)::'lambda'()::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:validation_chainstatemanager_tests::chainstatemanager::test_method()::$_2::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:validation_chainstatemanager_tests::chainstatemanager::test_method()::$_4::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:validation_chainstatemanager_tests::chainstatemanager::test_method()::$_6::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:validation_chainstatemanager_tests::chainstatemanager::test_method()::$_9::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:validation_chainstatemanager_tests::chainstatemanager::test_method()::$_13::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:validation_chainstatemanager_tests::chainstatemanager_rebalance_caches::test_method()::$_0::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:validation_chainstatemanager_tests::chainstatemanager_rebalance_caches::test_method()::$_1::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:bool CreateAndActivateUTXOSnapshot<$_37 const>(TestingSetup*, $_37 const, bool, bool)::'lambda'()::operator()() const
Line
Count
Source
299
12
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:bool CreateAndActivateUTXOSnapshot<validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda'(AutoFile&, node::SnapshotMetadata&)>(TestingSetup*, validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda'(AutoFile&, node::SnapshotMetadata&), bool, bool)::'lambda'()::operator()() const
Line
Count
Source
299
4
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:bool CreateAndActivateUTXOSnapshot<validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda0'(AutoFile&, node::SnapshotMetadata&)>(TestingSetup*, validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda0'(AutoFile&, node::SnapshotMetadata&), bool, bool)::'lambda'()::operator()() const
Line
Count
Source
299
4
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:bool CreateAndActivateUTXOSnapshot<validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda1'(AutoFile&, node::SnapshotMetadata&)>(TestingSetup*, validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda1'(AutoFile&, node::SnapshotMetadata&), bool, bool)::'lambda'()::operator()() const
Line
Count
Source
299
4
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:bool CreateAndActivateUTXOSnapshot<validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda2'(AutoFile&, node::SnapshotMetadata&)>(TestingSetup*, validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda2'(AutoFile&, node::SnapshotMetadata&), bool, bool)::'lambda'()::operator()() const
Line
Count
Source
299
4
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:bool CreateAndActivateUTXOSnapshot<validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda3'(AutoFile&, node::SnapshotMetadata&)>(TestingSetup*, validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda3'(AutoFile&, node::SnapshotMetadata&), bool, bool)::'lambda'()::operator()() const
Line
Count
Source
299
4
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda'()::operator()() const
Line
Count
Source
299
4
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:validation_chainstatemanager_tests::chainstatemanager_loadblockindex::test_method()::$_0::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:validation_chainstatemanager_tests::chainstatemanager_loadblockindex::test_method()::$_2::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:validation_chainstatemanager_tests::chainstatemanager_snapshot_init::test_method()::$_1::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:validation_chainstatemanager_tests::chainstatemanager_snapshot_completion::test_method()::$_2::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:validation_chainstatemanager_tests::chainstatemanager_snapshot_completion::test_method()::$_3::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:validation_chainstatemanager_tests::chainstatemanager_snapshot_completion::test_method()::$_7::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:validation_chainstatemanager_tests::chainstatemanager_snapshot_completion_hash_mismatch::test_method()::$_0::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation_chainstatemanager_tests.cpp:validation_chainstatemanager_tests::chainstatemanager_snapshot_completion_hash_mismatch::test_method()::$_1::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
coinselector_tests.cpp:wallet::coinselector_tests::bnb_sffo_restriction::test_method()::$_0::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
coinselector_tests.cpp:wallet::coinselector_tests::bnb_sffo_restriction::test_method()::$_1::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
spend_tests.cpp:wallet::spend_tests::SubtractFee::test_method()::$_0::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
spend_tests.cpp:wallet::spend_tests::wallet_duplicated_preset_inputs_test::test_method()::$_0::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet_tests.cpp:wallet::wallet_tests::scan_for_wallet_transactions::test_method()::$_1::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet_tests.cpp:wallet::wallet_tests::scan_for_wallet_transactions::test_method()::$_2::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet_tests.cpp:wallet::wallet_tests::scan_for_wallet_transactions::test_method()::$_3::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet_tests.cpp:wallet::wallet_tests::TestLoadWallet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, wallet::DatabaseFormat, std::function<void (std::shared_ptr<wallet::CWallet>)>)::$_0::operator()() const
Line
Count
Source
299
3
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet::wallet_tests::ListCoinsTestingSetup::ListCoinsTestingSetup()::'lambda'()::operator()() const
Line
Count
Source
299
2
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet_tests.cpp:wallet::wallet_tests::BasicOutputTypesTest::test_method()::$_0::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
V1Transport::ReceivedMessageComplete() const::'lambda'()::operator()() const
Line
Count
Source
299
323k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
HTTPRequestTracker::AddRequest(evhttp_request*)::'lambda'()::operator()() const
Line
Count
Source
299
171k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
HTTPRequestTracker::CountActiveConnections() const::'lambda'()::operator()() const
Line
Count
Source
299
1.13k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
base.cpp:BaseIndex::Init()::$_0::operator()() const
Line
Count
Source
299
145
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
base.cpp:BaseIndex::Sync()::$_0::operator()() const
Line
Count
Source
299
7.68k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
base.cpp:BaseIndex::SetBestBlockIndex(CBlockIndex const*)::$_0::operator()() const
Line
Count
Source
299
6.81k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
init.cpp:Interrupt(node::NodeContext&)::$_0::operator()() const
Line
Count
Source
299
1.11k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
init.cpp:AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_8::operator()() const
Line
Count
Source
299
961
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
init.cpp:AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_9::operator()() const
Line
Count
Source
299
998
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
init.cpp:StartIndexBackgroundSync(node::NodeContext&)::$_0::operator()() const
Line
Count
Source
299
998
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
init.cpp:StartIndexBackgroundSync(node::NodeContext&)::$_1::operator()() const
Line
Count
Source
299
998
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
init.cpp:AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_10::operator()() const::'lambda'()::operator()() const
Line
Count
Source
299
998
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
net.cpp:CConnman::AddConnection(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, ConnectionType, bool)::$_0::operator()() const
Line
Count
Source
299
150
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
net.cpp:CConnman::SocketHandlerConnected(std::vector<CNode*, std::allocator<CNode*>> const&, std::unordered_map<std::shared_ptr<Sock const>, Sock::Events, Sock::HashSharedPtrSock, Sock::EqualSharedPtrSock, std::allocator<std::pair<std::shared_ptr<Sock const> const, Sock::Events>>> const&)::$_0::operator()() const
Line
Count
Source
299
258
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
net.cpp:CConnman::StopNodes()::$_0::operator()() const
Line
Count
Source
299
2.25k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
net.cpp:CConnman::StopNodes()::$_1::operator()() const
Line
Count
Source
299
2.25k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
net_processing.cpp:(anonymous namespace)::Peer::GetTxRelay()::'lambda'()::operator()() const
Line
Count
Source
299
532k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
net_processing.cpp:(anonymous namespace)::PeerManagerImpl::GetNodeStateStats(long, CNodeStateStats&) const::$_0::operator()() const
Line
Count
Source
299
13.3k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
net_processing.cpp:(anonymous namespace)::PeerManagerImpl::InitializeNode(CNode const&, ServiceFlags)::$_0::operator()() const
Line
Count
Source
299
1.62k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
net_processing.cpp:(anonymous namespace)::PeerManagerImpl::FinalizeNode(CNode const&)::$_0::operator()() const
Line
Count
Source
299
840
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
net_processing.cpp:_ZZZN12_GLOBAL__N_115PeerManagerImpl16FindTxForGetDataERKNS_4Peer7TxRelayERK7GenTxidENK3$_0clI22transaction_identifierILb0EEEEDaRKT_ENKUlvE_clEv
Line
Count
Source
299
73
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
net_processing.cpp:_ZZZN12_GLOBAL__N_115PeerManagerImpl16FindTxForGetDataERKNS_4Peer7TxRelayERK7GenTxidENK3$_0clI22transaction_identifierILb1EEEEDaRKT_ENKUlvE_clEv
Line
Count
Source
299
13.2k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
Unexecuted instantiation: net_processing.cpp:(anonymous namespace)::PeerManagerImpl::ProcessGetBlockData(CNode&, (anonymous namespace)::Peer&, CInv const&)::$_0::operator()() const
Unexecuted instantiation: net_processing.cpp:(anonymous namespace)::PeerManagerImpl::ProcessGetBlockData(CNode&, (anonymous namespace)::Peer&, CInv const&)::$_1::operator()() const
net_processing.cpp:(anonymous namespace)::PeerManagerImpl::ProcessMessage((anonymous namespace)::Peer&, CNode&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, DataStream&, std::chrono::time_point<NodeClock, std::chrono::duration<long, std::ratio<1l, 1000000000l>>>, std::atomic<bool> const&)::$_0::operator()() const
Line
Count
Source
299
11
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
net_processing.cpp:(anonymous namespace)::PeerManagerImpl::ProcessMessage((anonymous namespace)::Peer&, CNode&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, DataStream&, std::chrono::time_point<NodeClock, std::chrono::duration<long, std::ratio<1l, 1000000000l>>>, std::atomic<bool> const&)::$_3::operator()() const
Line
Count
Source
299
6
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
net_processing.cpp:(anonymous namespace)::PeerManagerImpl::ProcessMessage((anonymous namespace)::Peer&, CNode&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, DataStream&, std::chrono::time_point<NodeClock, std::chrono::duration<long, std::ratio<1l, 1000000000l>>>, std::atomic<bool> const&)::$_4::operator()() const
Line
Count
Source
299
19
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
Unexecuted instantiation: net_processing.cpp:(anonymous namespace)::PeerManagerImpl::ProcessMessage((anonymous namespace)::Peer&, CNode&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, DataStream&, std::chrono::time_point<NodeClock, std::chrono::duration<long, std::ratio<1l, 1000000000l>>>, std::atomic<bool> const&)::$_5::operator()() const
net_processing.cpp:(anonymous namespace)::PeerManagerImpl::ProcessMessage((anonymous namespace)::Peer&, CNode&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, DataStream&, std::chrono::time_point<NodeClock, std::chrono::duration<long, std::ratio<1l, 1000000000l>>>, std::atomic<bool> const&)::$_6::operator()() const
Line
Count
Source
299
1
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
net_processing.cpp:(anonymous namespace)::PeerManagerImpl::ProcessHeadersMessage(CNode&, (anonymous namespace)::Peer&, std::vector<CBlockHeader, std::allocator<CBlockHeader>>&&, bool)::$_0::operator()() const
Line
Count
Source
299
7.22k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
net_processing.cpp:(anonymous namespace)::PeerManagerImpl::HandleUnconnectingHeaders(CNode&, (anonymous namespace)::Peer&, std::vector<CBlockHeader, std::allocator<CBlockHeader>> const&)::$_0::operator()() const
Line
Count
Source
299
199
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
net_processing.cpp:(anonymous namespace)::PeerManagerImpl::HandleUnconnectingHeaders(CNode&, (anonymous namespace)::Peer&, std::vector<CBlockHeader, std::allocator<CBlockHeader>> const&)::$_1::operator()() const
Line
Count
Source
299
199
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
net_processing.cpp:(anonymous namespace)::PeerManagerImpl::ProcessMessage((anonymous namespace)::Peer&, CNode&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, DataStream&, std::chrono::time_point<NodeClock, std::chrono::duration<long, std::ratio<1l, 1000000000l>>>, std::atomic<bool> const&)::$_7::operator()() const
Line
Count
Source
299
37.1k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
net_processing.cpp:(anonymous namespace)::PeerManagerImpl::ProcessMessage((anonymous namespace)::Peer&, CNode&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, DataStream&, std::chrono::time_point<NodeClock, std::chrono::duration<long, std::ratio<1l, 1000000000l>>>, std::atomic<bool> const&)::$_8::operator()() const
Line
Count
Source
299
126
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockstorage.cpp:node::BlockManager::WriteBlockIndexDB()::$_0::operator()() const
Line
Count
Source
299
3.36k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockstorage.cpp:node::BlockManager::ScanAndUnlinkAlreadyPrunedFiles()::$_0::operator()() const
Line
Count
Source
299
1.16k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockstorage.cpp:node::BlockManager::ReadBlockUndo(CBlockUndo&, CBlockIndex const&) const::$_0::operator()() const
Line
Count
Source
299
36.8k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockstorage.cpp:node::BlockManager::ReadBlock(CBlock&, CBlockIndex const&) const::$_0::operator()() const
Line
Count
Source
299
122k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockstorage.cpp:node::ImportBlocks(ChainstateManager&, std::span<fs::path const, 18446744073709551615ul>)::$_0::operator()() const
Line
Count
Source
299
13
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
Unexecuted instantiation: interfaces.cpp:node::(anonymous namespace)::NodeImpl::getBestBlockHash()::'lambda'()::operator()() const
interfaces.cpp:node::(anonymous namespace)::ChainImpl::getHeight()::'lambda'()::operator()() const
Line
Count
Source
299
2.34k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
interfaces.cpp:node::(anonymous namespace)::ChainImpl::blockFilterMatchesAny(BlockFilterType, uint256 const&, std::unordered_set<std::vector<unsigned char, std::allocator<unsigned char>>, ByteVectorHash, std::equal_to<std::vector<unsigned char, std::allocator<unsigned char>>>, std::allocator<std::vector<unsigned char, std::allocator<unsigned char>>>> const&)::'lambda'()::operator()() const
Line
Count
Source
299
615
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
interfaces.cpp:node::(anonymous namespace)::ChainImpl::waitForNotificationsIfTipChanged(uint256 const&)::'lambda'()::operator()() const
Line
Count
Source
299
6.53k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
Unexecuted instantiation: interfaces.cpp:node::(anonymous namespace)::MinerImpl::createNewBlock(node::BlockCreateOptions const&, bool)::'lambda'()::operator()() const
miner.cpp:node::RegenerateCommitments(CBlock&, ChainstateManager&)::$_0::operator()() const
Line
Count
Source
299
7.37k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
warnings.cpp:node::Warnings::Set(std::variant<kernel::Warning, node::Warning>, bilingual_str)::$_0::operator()() const
Line
Count
Source
299
162
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
warnings.cpp:node::Warnings::Unset(std::variant<kernel::Warning, node::Warning>)::$_0::operator()() const
Line
Count
Source
299
102k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
block_policy_estimator.cpp:FeeFilterRounder::round(long)::$_0::operator()() const
Line
Count
Source
299
97
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
rest.cpp:rest_deploymentinfo(std::any const&, HTTPRequest*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)::$_0::operator()() const
Line
Count
Source
299
2
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
rest.cpp:rest_spent_txouts(std::any const&, HTTPRequest*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)::$_0::operator()() const
Line
Count
Source
299
630
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockchain.cpp:blockToJSON(node::BlockManager&, CBlock const&, CBlockIndex const&, CBlockIndex const&, TxVerbosity, uint256)::$_0::operator()() const
Line
Count
Source
299
347
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockchain.cpp:blockToJSON(node::BlockManager&, CBlock const&, CBlockIndex const&, CBlockIndex const&, TxVerbosity, uint256)::$_1::operator()() const
Line
Count
Source
299
347
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockchain.cpp:CreateRolledBackUTXOSnapshot(node::NodeContext&, Chainstate&, CBlockIndex const*, AutoFile&&, fs::path const&, fs::path const&, bool)::$_0::operator()() const
Line
Count
Source
299
432
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockchain.cpp:CreateUTXOSnapshot(node::NodeContext&, Chainstate&, AutoFile&&, fs::path const&, fs::path const&)::$_0::operator()() const
Line
Count
Source
299
37
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockchain.cpp:getblockfrompeer()::$_0::operator()(RPCMethod const&, JSONRPCRequest const&) const::'lambda'()::operator()() const
Line
Count
Source
299
8
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockchain.cpp:getblockfrompeer()::$_0::operator()(RPCMethod const&, JSONRPCRequest const&) const::'lambda0'()::operator()() const
Line
Count
Source
299
2
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
blockchain.cpp:getblockfrompeer()::$_0::operator()(RPCMethod const&, JSONRPCRequest const&) const::'lambda1'()::operator()() const
Line
Count
Source
299
6
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
Unexecuted instantiation: blockchain.cpp:scanblocks()::$_0::operator()(RPCMethod const&, JSONRPCRequest const&) const::'lambda'()::operator()() const
blockchain.cpp:dumptxoutset()::$_0::operator()(RPCMethod const&, JSONRPCRequest const&) const::'lambda'()::operator()() const
Line
Count
Source
299
14
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
mempool.cpp:submitpackage()::$_0::operator()(RPCMethod const&, JSONRPCRequest const&) const::'lambda'()::operator()() const
Line
Count
Source
299
112
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
rawtransaction.cpp:getrawtransaction()::$_0::operator()(RPCMethod const&, JSONRPCRequest const&) const::'lambda'()::operator()() const
Line
Count
Source
299
2
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
rawtransaction.cpp:getrawtransaction()::$_0::operator()(RPCMethod const&, JSONRPCRequest const&) const::'lambda0'()::operator()() const
Line
Count
Source
299
5
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation.cpp:Chainstate::ActivateBestChain(BlockValidationState&, std::shared_ptr<CBlock const>)::$_0::operator()() const
Line
Count
Source
299
118k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation.cpp:Chainstate::InvalidateBlock(BlockValidationState&, CBlockIndex*)::$_0::operator()() const
Line
Count
Source
299
172
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation.cpp:ChainstateManager::ProcessNewBlock(std::shared_ptr<CBlock const> const&, bool, bool, bool*)::$_0::operator()() const
Line
Count
Source
299
114k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation.cpp:ChainstateManager::LoadExternalBlockFile(AutoFile&, FlatFilePos*, std::multimap<uint256, FlatFilePos, std::less<uint256>, std::allocator<std::pair<uint256 const, FlatFilePos>>>*)::$_0::operator()() const
Line
Count
Source
299
15
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation.cpp:ChainstateManager::ActivateSnapshot(AutoFile&, node::SnapshotMetadata const&, bool)::$_1::operator()() const
Line
Count
Source
299
38
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation.cpp:ChainstateManager::PopulateAndValidateSnapshot(Chainstate&, AutoFile&, node::SnapshotMetadata const&)::$_1::operator()() const
Line
Count
Source
299
38
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation.cpp:ChainstateManager::PopulateAndValidateSnapshot(Chainstate&, AutoFile&, node::SnapshotMetadata const&)::$_2::operator()() const
Line
Count
Source
299
38
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
validation.cpp:ChainstateManager::PopulateAndValidateSnapshot(Chainstate&, AutoFile&, node::SnapshotMetadata const&)::$_3::operator()() const
Line
Count
Source
299
38
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
Unexecuted instantiation: validation.cpp:ChainstateManager::PopulateAndValidateSnapshot(Chainstate&, AutoFile&, node::SnapshotMetadata const&)::$_4::operator()() const
validation.cpp:ChainstateManager::PopulateAndValidateSnapshot(Chainstate&, AutoFile&, node::SnapshotMetadata const&)::$_5::operator()() const
Line
Count
Source
299
22
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
scriptpubkeyman.cpp:wallet::LegacyDataSPKM::MigrateToDescriptor()::$_0::operator()() const
Line
Count
Source
299
38
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
scriptpubkeyman.cpp:wallet::LegacyDataSPKM::MigrateToDescriptor()::$_1::operator()() const
Line
Count
Source
299
66
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
scriptpubkeyman.cpp:wallet::LegacyDataSPKM::MigrateToDescriptor()::$_2::operator()() const
Line
Count
Source
299
17
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet.cpp:wallet::RemoveWallet(wallet::WalletContext&, std::shared_ptr<wallet::CWallet> const&, std::optional<bool>, std::vector<bilingual_str, std::allocator<bilingual_str>>&)::$_0::operator()() const
Line
Count
Source
299
872
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet.cpp:wallet::LoadWallet(wallet::WalletContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::optional<bool>, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&, std::vector<bilingual_str, std::allocator<bilingual_str>>&)::$_0::operator()[abi:cxx11]() const
Line
Count
Source
299
235
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet.cpp:wallet::LoadWallet(wallet::WalletContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::optional<bool>, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&, std::vector<bilingual_str, std::allocator<bilingual_str>>&)::$_1::operator()() const
Line
Count
Source
299
233
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet.cpp:wallet::CreateWallet(wallet::WalletContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::optional<bool>, wallet::DatabaseOptions&, wallet::DatabaseStatus&, bilingual_str&, std::vector<bilingual_str, std::allocator<bilingual_str>>&)::$_0::operator()() const
Line
Count
Source
299
579
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet.cpp:wallet::CWallet::BlockUntilSyncedToCurrentChain() const::$_0::operator()() const
Line
Count
Source
299
6.53k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet.cpp:wallet::CWallet::RescanFromTime(long, wallet::WalletRescanReserver const&, bool)::$_0::operator()() const
Line
Count
Source
299
613
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet.cpp:wallet::CWallet::ScanForWalletTransactions(uint256 const&, int, std::optional<int>, wallet::WalletRescanReserver const&, bool, bool)::$_0::operator()() const
Line
Count
Source
299
689
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet.cpp:wallet::CWallet::ScanForWalletTransactions(uint256 const&, int, std::optional<int>, wallet::WalletRescanReserver const&, bool, bool)::$_1::operator()() const
Line
Count
Source
299
74.2k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet.cpp:wallet::CWallet::ScanForWalletTransactions(uint256 const&, int, std::optional<int>, wallet::WalletRescanReserver const&, bool, bool)::$_2::operator()() const
Line
Count
Source
299
73.5k
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet.cpp:wallet::CWallet::ScanForWalletTransactions(uint256 const&, int, std::optional<int>, wallet::WalletRescanReserver const&, bool, bool)::$_3::operator()() const
Line
Count
Source
299
687
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet.cpp:wallet::CWallet::LoadExisting(wallet::WalletContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::unique_ptr<wallet::WalletDatabase, std::default_delete<wallet::WalletDatabase>>, bilingual_str&, std::vector<bilingual_str, std::allocator<bilingual_str>>&)::$_0::operator()() const
Line
Count
Source
299
341
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet.cpp:wallet::CWallet::postInitProcess()::$_0::operator()() const
Line
Count
Source
299
876
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
wallet.cpp:wallet::CWallet::BackupWallet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&) const::$_0::operator()() const
Line
Count
Source
299
113
#define WITH_LOCK(cs, code) (MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { LOCK(cs); code; }())
300
301
#endif // BITCOIN_SYNC_H