Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

work_pool: move stopping from destructor to stop function #4437

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions nano/core_test/block_store.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1012,30 +1012,30 @@ TEST (mdb_block_store, sideband_height)
nano::block_builder builder;
auto transaction (store.tx_begin_write ());
store.initialize (transaction, ledger.cache, nano::dev::constants);
nano::work_pool pool{ nano::dev::network_params.network, std::numeric_limits<unsigned>::max () };
nano::test::start_stop_container<nano::work_pool> pool{ nano::dev::network_params.network, std::numeric_limits<unsigned>::max () };
auto send = builder
.send ()
.previous (nano::dev::genesis->hash ())
.destination (nano::dev::genesis_key.pub)
.balance (nano::dev::constants.genesis_amount - nano::Gxrb_ratio)
.sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub)
.work (*pool.generate (nano::dev::genesis->hash ()))
.work (*pool.obj.generate (nano::dev::genesis->hash ()))
.build ();
ASSERT_EQ (nano::process_result::progress, ledger.process (transaction, *send).code);
auto receive = builder
.receive ()
.previous (send->hash ())
.source (send->hash ())
.sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub)
.work (*pool.generate (send->hash ()))
.work (*pool.obj.generate (send->hash ()))
.build ();
ASSERT_EQ (nano::process_result::progress, ledger.process (transaction, *receive).code);
auto change = builder
.change ()
.previous (receive->hash ())
.representative (0)
.sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub)
.work (*pool.generate (receive->hash ()))
.work (*pool.obj.generate (receive->hash ()))
.build ();
ASSERT_EQ (nano::process_result::progress, ledger.process (transaction, *change).code);
auto state_send1 = builder
Expand All @@ -1046,7 +1046,7 @@ TEST (mdb_block_store, sideband_height)
.balance (nano::dev::constants.genesis_amount - nano::Gxrb_ratio)
.link (key1.pub)
.sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub)
.work (*pool.generate (change->hash ()))
.work (*pool.obj.generate (change->hash ()))
.build ();
ASSERT_EQ (nano::process_result::progress, ledger.process (transaction, *state_send1).code);
auto state_send2 = builder
Expand All @@ -1057,7 +1057,7 @@ TEST (mdb_block_store, sideband_height)
.balance (nano::dev::constants.genesis_amount - 2 * nano::Gxrb_ratio)
.link (key2.pub)
.sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub)
.work (*pool.generate (state_send1->hash ()))
.work (*pool.obj.generate (state_send1->hash ()))
.build ();
ASSERT_EQ (nano::process_result::progress, ledger.process (transaction, *state_send2).code);
auto state_send3 = builder
Expand All @@ -1068,7 +1068,7 @@ TEST (mdb_block_store, sideband_height)
.balance (nano::dev::constants.genesis_amount - 3 * nano::Gxrb_ratio)
.link (key3.pub)
.sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub)
.work (*pool.generate (state_send2->hash ()))
.work (*pool.obj.generate (state_send2->hash ()))
.build ();
ASSERT_EQ (nano::process_result::progress, ledger.process (transaction, *state_send3).code);
auto state_open = builder
Expand All @@ -1079,7 +1079,7 @@ TEST (mdb_block_store, sideband_height)
.balance (nano::Gxrb_ratio)
.link (state_send1->hash ())
.sign (key1.prv, key1.pub)
.work (*pool.generate (key1.pub))
.work (*pool.obj.generate (key1.pub))
.build ();
ASSERT_EQ (nano::process_result::progress, ledger.process (transaction, *state_open).code);
auto epoch = builder
Expand All @@ -1090,7 +1090,7 @@ TEST (mdb_block_store, sideband_height)
.balance (nano::Gxrb_ratio)
.link (ledger.epoch_link (nano::epoch::epoch_1))
.sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub)
.work (*pool.generate (state_open->hash ()))
.work (*pool.obj.generate (state_open->hash ()))
.build ();
ASSERT_EQ (nano::process_result::progress, ledger.process (transaction, *epoch).code);
ASSERT_EQ (nano::epoch::epoch_1, ledger.version (*epoch));
Expand All @@ -1102,7 +1102,7 @@ TEST (mdb_block_store, sideband_height)
.balance (0)
.link (ledger.epoch_link (nano::epoch::epoch_1))
.sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub)
.work (*pool.generate (key2.pub))
.work (*pool.obj.generate (key2.pub))
.build ();
ASSERT_EQ (nano::process_result::progress, ledger.process (transaction, *epoch_open).code);
ASSERT_EQ (nano::epoch::epoch_1, ledger.version (*epoch_open));
Expand All @@ -1114,7 +1114,7 @@ TEST (mdb_block_store, sideband_height)
.balance (nano::Gxrb_ratio)
.link (state_send2->hash ())
.sign (key2.prv, key2.pub)
.work (*pool.generate (epoch_open->hash ()))
.work (*pool.obj.generate (epoch_open->hash ()))
.build ();
ASSERT_EQ (nano::process_result::progress, ledger.process (transaction, *state_receive).code);
auto open = builder
Expand All @@ -1123,7 +1123,7 @@ TEST (mdb_block_store, sideband_height)
.representative (nano::dev::genesis_key.pub)
.account (key3.pub)
.sign (key3.prv, key3.pub)
.work (*pool.generate (key3.pub))
.work (*pool.obj.generate (key3.pub))
.build ();
ASSERT_EQ (nano::process_result::progress, ledger.process (transaction, *open).code);
auto block1 (store.block.get (transaction, nano::dev::genesis->hash ()));
Expand Down
32 changes: 16 additions & 16 deletions nano/core_test/confirmation_height.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1165,7 +1165,7 @@ TEST (confirmation_heightDeathTest, rollback_added_block)
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
nano::write_database_queue write_database_queue (false);
nano::work_pool pool{ nano::dev::network_params.network, std::numeric_limits<unsigned>::max () };
nano::test::start_stop_container<nano::work_pool> pool{ nano::dev::network_params.network, std::numeric_limits<unsigned>::max () };
nano::keypair key1;
nano::block_builder builder;
auto send = builder
Expand All @@ -1174,7 +1174,7 @@ TEST (confirmation_heightDeathTest, rollback_added_block)
.destination (key1.pub)
.balance (nano::dev::constants.genesis_amount - nano::Gxrb_ratio)
.sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub)
.work (*pool.generate (nano::dev::genesis->hash ()))
.work (*pool.obj.generate (nano::dev::genesis->hash ()))
.build_shared ();
{
auto transaction (store->tx_begin_write ());
Expand Down Expand Up @@ -1255,7 +1255,7 @@ TEST (confirmation_heightDeathTest, modified_chain)
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
nano::write_database_queue write_database_queue (false);
nano::work_pool pool{ nano::dev::network_params.network, std::numeric_limits<unsigned>::max () };
nano::test::start_stop_container<nano::work_pool> pool{ nano::dev::network_params.network, std::numeric_limits<unsigned>::max () };
nano::keypair key1;
nano::block_builder builder;
auto send = builder
Expand All @@ -1264,7 +1264,7 @@ TEST (confirmation_heightDeathTest, modified_chain)
.destination (key1.pub)
.balance (nano::dev::constants.genesis_amount - nano::Gxrb_ratio)
.sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub)
.work (*pool.generate (nano::dev::genesis->hash ()))
.work (*pool.obj.generate (nano::dev::genesis->hash ()))
.build_shared ();
{
auto transaction (store->tx_begin_write ());
Expand Down Expand Up @@ -1332,7 +1332,7 @@ TEST (confirmation_heightDeathTest, modified_chain_account_removed)
nano::stats stats;
nano::ledger ledger (*store, stats, nano::dev::constants);
nano::write_database_queue write_database_queue (false);
nano::work_pool pool{ nano::dev::network_params.network, std::numeric_limits<unsigned>::max () };
nano::test::start_stop_container<nano::work_pool> pool{ nano::dev::network_params.network, std::numeric_limits<unsigned>::max () };
nano::keypair key1;
nano::block_builder builder;
auto send = builder
Expand All @@ -1341,7 +1341,7 @@ TEST (confirmation_heightDeathTest, modified_chain_account_removed)
.destination (key1.pub)
.balance (nano::dev::constants.genesis_amount - nano::Gxrb_ratio)
.sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub)
.work (*pool.generate (nano::dev::genesis->hash ()))
.work (*pool.obj.generate (nano::dev::genesis->hash ()))
.build_shared ();
auto open = builder
.state ()
Expand All @@ -1351,7 +1351,7 @@ TEST (confirmation_heightDeathTest, modified_chain_account_removed)
.balance (nano::Gxrb_ratio)
.link (send->hash ())
.sign (key1.prv, key1.pub)
.work (*pool.generate (key1.pub))
.work (*pool.obj.generate (key1.pub))
.build_shared ();
{
auto transaction (store->tx_begin_write ());
Expand Down Expand Up @@ -2040,7 +2040,7 @@ TEST (confirmation_height, unbounded_block_cache_iteration)
nano::ledger ledger (*store, stats, nano::dev::constants);
nano::write_database_queue write_database_queue (false);
boost::latch initialized_latch{ 0 };
nano::work_pool pool{ nano::dev::network_params.network, std::numeric_limits<unsigned>::max () };
nano::test::start_stop_container<nano::work_pool> pool{ nano::dev::network_params.network, std::numeric_limits<unsigned>::max () };
nano::keypair key1;
nano::block_builder builder;
auto send = builder
Expand All @@ -2049,15 +2049,15 @@ TEST (confirmation_height, unbounded_block_cache_iteration)
.destination (key1.pub)
.balance (nano::dev::constants.genesis_amount - nano::Gxrb_ratio)
.sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub)
.work (*pool.generate (nano::dev::genesis->hash ()))
.work (*pool.obj.generate (nano::dev::genesis->hash ()))
.build_shared ();
auto send1 = builder
.send ()
.previous (send->hash ())
.destination (key1.pub)
.balance (nano::dev::constants.genesis_amount - nano::Gxrb_ratio * 2)
.sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub)
.work (*pool.generate (send->hash ()))
.work (*pool.obj.generate (send->hash ()))
.build_shared ();
{
auto transaction (store->tx_begin_write ());
Expand Down Expand Up @@ -2103,7 +2103,7 @@ TEST (confirmation_height, pruned_source)
nano::ledger ledger (*store, stats, nano::dev::constants);
ledger.pruning = true;
nano::write_database_queue write_database_queue (false);
nano::work_pool pool{ nano::dev::network_params.network, std::numeric_limits<unsigned>::max () };
nano::test::start_stop_container<nano::work_pool> pool{ nano::dev::network_params.network, std::numeric_limits<unsigned>::max () };
nano::keypair key1, key2;
nano::block_builder builder;
auto send1 = builder
Expand All @@ -2114,7 +2114,7 @@ TEST (confirmation_height, pruned_source)
.balance (nano::dev::constants.genesis_amount - 100)
.link (key1.pub)
.sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub)
.work (*pool.generate (nano::dev::genesis->hash ()))
.work (*pool.obj.generate (nano::dev::genesis->hash ()))
.build_shared ();
auto open1 = builder
.state ()
Expand All @@ -2124,7 +2124,7 @@ TEST (confirmation_height, pruned_source)
.balance (100)
.link (send1->hash ())
.sign (key1.prv, key1.pub)
.work (*pool.generate (key1.pub))
.work (*pool.obj.generate (key1.pub))
.build_shared ();
auto send2 = builder
.state ()
Expand All @@ -2134,7 +2134,7 @@ TEST (confirmation_height, pruned_source)
.balance (50)
.link (key2.pub)
.sign (key1.prv, key1.pub)
.work (*pool.generate (open1->hash ()))
.work (*pool.obj.generate (open1->hash ()))
.build_shared ();
auto send3 = builder
.state ()
Expand All @@ -2144,7 +2144,7 @@ TEST (confirmation_height, pruned_source)
.balance (25)
.link (key2.pub)
.sign (key1.prv, key1.pub)
.work (*pool.generate (send2->hash ()))
.work (*pool.obj.generate (send2->hash ()))
.build_shared ();
auto open2 = builder
.state ()
Expand All @@ -2154,7 +2154,7 @@ TEST (confirmation_height, pruned_source)
.balance (50)
.link (send2->hash ())
.sign (key2.prv, key2.pub)
.work (*pool.generate (key2.pub))
.work (*pool.obj.generate (key2.pub))
.build_shared ();
{
auto transaction (store->tx_begin_write ());
Expand Down
Loading
Loading