Skip to content

Commit 2aef566

Browse files
authored
Merge pull request #698 from evoskuil/master
Use non-const& for cancel atomic.
2 parents 9431c94 + 59058aa commit 2aef566

File tree

3 files changed

+41
-43
lines changed

3 files changed

+41
-43
lines changed

include/bitcoin/database/impl/query/optional.ipp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ namespace database {
3737
// private/static
3838
TEMPLATE
3939
template <typename Functor>
40-
inline code CLASS::parallel_address_transform(const std::atomic_bool& cancel,
40+
inline code CLASS::parallel_address_transform(std::atomic_bool& cancel,
4141
outpoints& out, const output_links& links, Functor&& functor) NOEXCEPT
4242
{
4343
constexpr auto parallel = poolstl::execution::par;
@@ -65,8 +65,8 @@ inline code CLASS::parallel_address_transform(const std::atomic_bool& cancel,
6565

6666
// protected
6767
TEMPLATE
68-
code CLASS::to_address_outputs(const std::atomic_bool& cancel,
69-
output_links& out, const hash_digest& key) const NOEXCEPT
68+
code CLASS::to_address_outputs(std::atomic_bool& cancel, output_links& out,
69+
const hash_digest& key) const NOEXCEPT
7070
{
7171
// Pushing into the vector is more efficient than precomputation of size.
7272
out.clear();
@@ -87,8 +87,8 @@ code CLASS::to_address_outputs(const std::atomic_bool& cancel,
8787

8888
// protected
8989
TEMPLATE
90-
code CLASS::get_address_outputs_turbo(const std::atomic_bool& cancel,
91-
outpoints& out, const hash_digest& key) const NOEXCEPT
90+
code CLASS::get_address_outputs_turbo(std::atomic_bool& cancel, outpoints& out,
91+
const hash_digest& key) const NOEXCEPT
9292
{
9393
out.clear();
9494
output_links links{};
@@ -106,8 +106,8 @@ code CLASS::get_address_outputs_turbo(const std::atomic_bool& cancel,
106106
}
107107

108108
TEMPLATE
109-
code CLASS::get_address_outputs(const std::atomic_bool& cancel,
110-
outpoints& out, const hash_digest& key, bool turbo) const NOEXCEPT
109+
code CLASS::get_address_outputs(std::atomic_bool& cancel, outpoints& out,
110+
const hash_digest& key, bool turbo) const NOEXCEPT
111111
{
112112
if (turbo && store_.turbo())
113113
return get_address_outputs_turbo(cancel, out, key);
@@ -130,7 +130,7 @@ code CLASS::get_address_outputs(const std::atomic_bool& cancel,
130130

131131
// protected
132132
TEMPLATE
133-
code CLASS::get_confirmed_unspent_outputs_turbo(const std::atomic_bool& cancel,
133+
code CLASS::get_confirmed_unspent_outputs_turbo(std::atomic_bool& cancel,
134134
outpoints& out, const hash_digest& key) const NOEXCEPT
135135
{
136136
out.clear();
@@ -151,7 +151,7 @@ code CLASS::get_confirmed_unspent_outputs_turbo(const std::atomic_bool& cancel,
151151
}
152152

153153
TEMPLATE
154-
code CLASS::get_confirmed_unspent_outputs(const std::atomic_bool& cancel,
154+
code CLASS::get_confirmed_unspent_outputs(std::atomic_bool& cancel,
155155
outpoints& out, const hash_digest& key, bool turbo) const NOEXCEPT
156156
{
157157
if (turbo && store_.turbo())
@@ -176,7 +176,7 @@ code CLASS::get_confirmed_unspent_outputs(const std::atomic_bool& cancel,
176176

177177
// protected
178178
TEMPLATE
179-
code CLASS::get_minimum_unspent_outputs_turbo(const std::atomic_bool& cancel,
179+
code CLASS::get_minimum_unspent_outputs_turbo(std::atomic_bool& cancel,
180180
outpoints& out, const hash_digest& key, uint64_t minimum) const NOEXCEPT
181181
{
182182
out.clear();
@@ -207,9 +207,9 @@ code CLASS::get_minimum_unspent_outputs_turbo(const std::atomic_bool& cancel,
207207
}
208208

209209
TEMPLATE
210-
code CLASS::get_minimum_unspent_outputs(const std::atomic_bool& cancel,
211-
outpoints& out, const hash_digest& key,
212-
uint64_t minimum, bool turbo) const NOEXCEPT
210+
code CLASS::get_minimum_unspent_outputs(std::atomic_bool& cancel,
211+
outpoints& out, const hash_digest& key, uint64_t minimum,
212+
bool turbo) const NOEXCEPT
213213
{
214214
if (turbo && store_.turbo())
215215
return get_minimum_unspent_outputs_turbo(cancel, out, key, minimum);
@@ -239,8 +239,8 @@ code CLASS::get_minimum_unspent_outputs(const std::atomic_bool& cancel,
239239
}
240240

241241
TEMPLATE
242-
code CLASS::get_confirmed_balance(const std::atomic_bool& cancel,
243-
uint64_t& balance, const hash_digest& key, bool turbo) const NOEXCEPT
242+
code CLASS::get_confirmed_balance(std::atomic_bool& cancel, uint64_t& balance,
243+
const hash_digest& key, bool turbo) const NOEXCEPT
244244
{
245245
outpoints outs{};
246246
if (code ec = get_confirmed_unspent_outputs(cancel, outs, key, turbo))

include/bitcoin/database/query.hpp

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -314,8 +314,8 @@ class query
314314
tx_link top_tx(size_t bucket) const NOEXCEPT;
315315

316316
/// optional enumeration
317-
code to_address_outputs(const std::atomic_bool& cancel,
318-
output_links& out, const hash_digest& key) const NOEXCEPT;
317+
code to_address_outputs(std::atomic_bool& cancel, output_links& out,
318+
const hash_digest& key) const NOEXCEPT;
319319

320320
/// Archive reads.
321321
/// -----------------------------------------------------------------------
@@ -553,14 +553,13 @@ class query
553553
/// Optional Tables.
554554
/// -----------------------------------------------------------------------
555555

556-
code get_address_outputs(const std::atomic_bool& cancel,
557-
outpoints& out, const hash_digest& key, bool turbo=false) const NOEXCEPT;
558-
code get_confirmed_unspent_outputs(const std::atomic_bool& cancel,
559-
outpoints& out, const hash_digest& key, bool turbo=false) const NOEXCEPT;
560-
code get_minimum_unspent_outputs(const std::atomic_bool& cancel,
561-
outpoints& out, const hash_digest& key, uint64_t value,
562-
bool turbo=false) const NOEXCEPT;
563-
code get_confirmed_balance(const std::atomic_bool& cancel,
556+
code get_address_outputs(std::atomic_bool& cancel, outpoints& out,
557+
const hash_digest& key, bool turbo=false) const NOEXCEPT;
558+
code get_confirmed_unspent_outputs(std::atomic_bool& cancel, outpoints& out,
559+
const hash_digest& key, bool turbo=false) const NOEXCEPT;
560+
code get_minimum_unspent_outputs(std::atomic_bool& cancel, outpoints& out,
561+
const hash_digest& key, uint64_t value, bool turbo=false) const NOEXCEPT;
562+
code get_confirmed_balance(std::atomic_bool& cancel,
564563
uint64_t& balance, const hash_digest& key, bool turbo=false) const NOEXCEPT;
565564

566565
bool is_filtered_body(const header_link& link) const NOEXCEPT;
@@ -695,11 +694,11 @@ class query
695694
/// address
696695
/// -----------------------------------------------------------------------
697696

698-
code get_address_outputs_turbo(const std::atomic_bool& cancel,
697+
code get_address_outputs_turbo(std::atomic_bool& cancel,
699698
outpoints& out, const hash_digest& key) const NOEXCEPT;
700-
code get_confirmed_unspent_outputs_turbo(const std::atomic_bool& cancel,
699+
code get_confirmed_unspent_outputs_turbo(std::atomic_bool& cancel,
701700
outpoints& out, const hash_digest& key) const NOEXCEPT;
702-
code get_minimum_unspent_outputs_turbo(const std::atomic_bool& cancel,
701+
code get_minimum_unspent_outputs_turbo(std::atomic_bool& cancel,
703702
outpoints& out, const hash_digest& key, uint64_t minimum) const NOEXCEPT;
704703

705704
/// tx_fk must be allocated.
@@ -712,9 +711,8 @@ class query
712711
static inline bool push_bool(std_vector<Bool>& stack,
713712
const Bool& element) NOEXCEPT;
714713
template <typename Functor>
715-
static inline code parallel_address_transform(
716-
const std::atomic_bool& cancel, outpoints& out,
717-
const output_links& links, Functor&& functor) NOEXCEPT;
714+
static inline code parallel_address_transform(std::atomic_bool& cancel,
715+
outpoints& out, const output_links& links, Functor&& functor) NOEXCEPT;
718716

719717
// Not thread safe.
720718
size_t get_fork_() const NOEXCEPT;

test/query/optional.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ BOOST_AUTO_TEST_CASE(query_optional__to_address_outputs__genesis__expected)
3939
BOOST_REQUIRE(query.initialize(test::genesis));
4040

4141
output_links out{};
42-
const std::atomic_bool cancel{};
42+
std::atomic_bool cancel{};
4343
BOOST_REQUIRE(!query.to_address_outputs(cancel, out, genesis_address));
4444
BOOST_REQUIRE_EQUAL(out.size(), 1u);
4545
BOOST_REQUIRE_EQUAL(out.front(), query.to_output(0, 0));
@@ -57,7 +57,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_address_outputs__turbo_genesis__expecte
5757
BOOST_REQUIRE(query.initialize(test::genesis));
5858

5959
outpoints out{};
60-
const std::atomic_bool cancel{};
60+
std::atomic_bool cancel{};
6161
BOOST_REQUIRE(!query.get_address_outputs(cancel, out, genesis_address, true));
6262
BOOST_REQUIRE_EQUAL(out.size(), 1u);
6363
////BOOST_REQUIRE_EQUAL(out.front(), query.to_output(0, 0));
@@ -73,7 +73,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_address_outputs__genesis__expected)
7373
BOOST_REQUIRE(query.initialize(test::genesis));
7474

7575
outpoints out{};
76-
const std::atomic_bool cancel{};
76+
std::atomic_bool cancel{};
7777
BOOST_REQUIRE(!query.get_address_outputs(cancel, out, genesis_address));
7878
BOOST_REQUIRE_EQUAL(out.size(), 1u);
7979
////BOOST_REQUIRE_EQUAL(out.front(), query.to_output(0, 0));
@@ -89,7 +89,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_address_outputs__cancel__canceled_false
8989
BOOST_REQUIRE(query.initialize(test::genesis));
9090

9191
outpoints out{};
92-
const std::atomic_bool cancel{ true };
92+
std::atomic_bool cancel{ true };
9393
BOOST_REQUIRE_EQUAL(query.get_address_outputs(cancel, out, genesis_address), error::canceled);
9494
BOOST_REQUIRE(out.empty());
9595
}
@@ -106,7 +106,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_confirmed_unspent_outputs__turbo_genesi
106106
BOOST_REQUIRE(query.initialize(test::genesis));
107107

108108
outpoints out{};
109-
const std::atomic_bool cancel{};
109+
std::atomic_bool cancel{};
110110
BOOST_REQUIRE(!query.get_confirmed_unspent_outputs(cancel, out, genesis_address, true));
111111
BOOST_REQUIRE_EQUAL(out.size(), 1u);
112112
////BOOST_REQUIRE_EQUAL(out.front(), 0);
@@ -122,7 +122,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_confirmed_unspent_outputs__genesis__exp
122122
BOOST_REQUIRE(query.initialize(test::genesis));
123123

124124
outpoints out{};
125-
const std::atomic_bool cancel{};
125+
std::atomic_bool cancel{};
126126
BOOST_REQUIRE(!query.get_confirmed_unspent_outputs(cancel, out, genesis_address));
127127
BOOST_REQUIRE_EQUAL(out.size(), 1u);
128128
////BOOST_REQUIRE_EQUAL(out.front(), 0);
@@ -140,7 +140,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_minimum_unspent_outputs__turbo_above__e
140140
BOOST_REQUIRE(query.initialize(test::genesis));
141141

142142
outpoints out{};
143-
const std::atomic_bool cancel{};
143+
std::atomic_bool cancel{};
144144
BOOST_REQUIRE(!query.get_minimum_unspent_outputs(cancel, out, genesis_address, 5000000001, true));
145145
BOOST_REQUIRE(out.empty());
146146
}
@@ -155,7 +155,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_minimum_unspent_outputs__above__exclude
155155
BOOST_REQUIRE(query.initialize(test::genesis));
156156

157157
outpoints out{};
158-
const std::atomic_bool cancel{};
158+
std::atomic_bool cancel{};
159159
BOOST_REQUIRE(!query.get_minimum_unspent_outputs(cancel, out, genesis_address, 5000000001));
160160
BOOST_REQUIRE(out.empty());
161161
}
@@ -170,7 +170,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_minimum_unspent_outputs__at__included)
170170
BOOST_REQUIRE(query.initialize(test::genesis));
171171

172172
outpoints out{};
173-
const std::atomic_bool cancel{};
173+
std::atomic_bool cancel{};
174174
BOOST_REQUIRE(!query.get_minimum_unspent_outputs(cancel, out, genesis_address, 5000000000));
175175
BOOST_REQUIRE_EQUAL(out.size(), 1u);
176176
////BOOST_REQUIRE_EQUAL(out.front(), 0);
@@ -186,7 +186,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_minimum_unspent_outputs__below__include
186186
BOOST_REQUIRE(query.initialize(test::genesis));
187187

188188
outpoints out{};
189-
const std::atomic_bool cancel{};
189+
std::atomic_bool cancel{};
190190
BOOST_REQUIRE(!query.get_minimum_unspent_outputs(cancel, out, genesis_address, 0));
191191
BOOST_REQUIRE_EQUAL(out.size(), 1u);
192192
////BOOST_REQUIRE_EQUAL(out.front(), 0);
@@ -207,7 +207,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_confirmed_balance__turbo_genesis__expec
207207
BOOST_REQUIRE(query.initialize(test::genesis));
208208

209209
uint64_t out{};
210-
const std::atomic_bool cancel{};
210+
std::atomic_bool cancel{};
211211
BOOST_REQUIRE(!query.get_confirmed_balance(cancel, out, genesis_address, true));
212212
BOOST_REQUIRE_EQUAL(out, 5000000000u);
213213
}
@@ -222,7 +222,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_confirmed_balance__genesis__expected)
222222
BOOST_REQUIRE(query.initialize(test::genesis));
223223

224224
uint64_t out{};
225-
const std::atomic_bool cancel{};
225+
std::atomic_bool cancel{};
226226
BOOST_REQUIRE(!query.get_confirmed_balance(cancel, out, genesis_address));
227227
BOOST_REQUIRE_EQUAL(out, 5000000000u);
228228
}

0 commit comments

Comments
 (0)