fuzz coverage

Coverage Report

Created: 2025-10-29 15:27

/Users/eugenesiegel/btc/bitcoin/src/util/threadinterrupt.cpp
Line
Count
Source (jump to first uncovered line)
1
// Copyright (c) 2009-2010 Satoshi Nakamoto
2
// Copyright (c) 2009-2022 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
#include <util/threadinterrupt.h>
7
8
#include <sync.h>
9
10
51.2k
CThreadInterrupt::CThreadInterrupt() : flag(false) {}
11
12
bool CThreadInterrupt::interrupted() const
13
0
{
14
0
    return flag.load(std::memory_order_acquire);
15
0
}
16
17
CThreadInterrupt::operator bool() const
18
0
{
19
0
    return interrupted();
20
0
}
21
22
void CThreadInterrupt::reset()
23
0
{
24
0
    flag.store(false, std::memory_order_release);
25
0
}
26
27
void CThreadInterrupt::operator()()
28
102k
{
29
102k
    {
30
102k
        LOCK(mut);
Line
Count
Source
259
102k
#define LOCK(cs) UniqueLock UNIQUE_NAME(criticalblock)(MaybeCheckNotHeld(cs), #cs, __FILE__, __LINE__)
Line
Count
Source
11
102k
#define UNIQUE_NAME(name) PASTE2(name, __COUNTER__)
Line
Count
Source
9
102k
#define PASTE2(x, y) PASTE(x, y)
Line
Count
Source
8
102k
#define PASTE(x, y) x ## y
31
102k
        flag.store(true, std::memory_order_release);
32
102k
    }
33
102k
    cond.notify_all();
34
102k
}
35
36
bool CThreadInterrupt::sleep_for(Clock::duration rel_time)
37
0
{
38
0
    WAIT_LOCK(mut, lock);
Line
Count
Source
265
0
#define WAIT_LOCK(cs, name) UniqueLock name(LOCK_ARGS(cs))
Line
Count
Source
263
0
#define LOCK_ARGS(cs) MaybeCheckNotHeld(cs), #cs, __FILE__, __LINE__
39
0
    return !cond.wait_for(lock, rel_time, [this]() { return flag.load(std::memory_order_acquire); });
40
0
}