Skip to content

Commit f0846cb

Browse files
Remove unnecessarily public + repeated singleton initialisation (#7123)
Co-authored-by: Amaury Chamayou <[email protected]>
1 parent 3776c5a commit f0846cb

File tree

12 files changed

+8
-52
lines changed

12 files changed

+8
-52
lines changed

src/consensus/aft/test/driver.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,6 @@
1515

1616
using namespace std;
1717

18-
std::unique_ptr<threading::ThreadMessaging>
19-
threading::ThreadMessaging::singleton = nullptr;
20-
21-
namespace threading
22-
{
23-
std::map<std::thread::id, uint16_t> thread_ids;
24-
}
25-
2618
constexpr auto shash = ccf::ds::fnv_1a<size_t>;
2719

2820
int main(int argc, char** argv)

src/consensus/aft/test/main.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@
77
#define DOCTEST_CONFIG_IMPLEMENT
88
#include <doctest/doctest.h>
99

10-
std::unique_ptr<threading::ThreadMessaging>
11-
threading::ThreadMessaging::singleton = nullptr;
12-
1310
using ms = std::chrono::milliseconds;
1411

1512
DOCTEST_TEST_CASE("Single node startup" * doctest::test_suite("single"))

src/ds/thread_messaging.h

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,11 @@ namespace threading
237237
return tasks[task_id];
238238
}
239239

240-
static std::unique_ptr<ThreadMessaging> singleton;
240+
static std::unique_ptr<ThreadMessaging>& get_singleton()
241+
{
242+
static std::unique_ptr<ThreadMessaging> singleton = nullptr;
243+
return singleton;
244+
}
241245

242246
public:
243247
static constexpr uint16_t max_num_threads = 24;
@@ -262,6 +266,7 @@ namespace threading
262266

263267
static void init(uint16_t num_task_queues)
264268
{
269+
auto& singleton = get_singleton();
265270
if (singleton != nullptr)
266271
{
267272
throw std::logic_error("Called init() multiple times");
@@ -272,11 +277,12 @@ namespace threading
272277

273278
static void shutdown()
274279
{
275-
singleton.reset();
280+
get_singleton().reset();
276281
}
277282

278283
static ThreadMessaging& instance()
279284
{
285+
auto& singleton = get_singleton();
280286
if (singleton == nullptr)
281287
{
282288
throw std::logic_error(

src/enclave/main.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@ static std::atomic<ccf::Enclave*> e;
2121
std::atomic<uint16_t> num_pending_threads = 0;
2222
std::atomic<uint16_t> num_complete_threads = 0;
2323

24-
std::unique_ptr<threading::ThreadMessaging>
25-
threading::ThreadMessaging::singleton = nullptr;
26-
2724
constexpr size_t min_gap_between_initiation_attempts_us =
2825
2'000'000; // 2 seconds
2926
std::chrono::microseconds ccf::Channel::min_gap_between_initiation_attempts(

src/indexing/test/indexing.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,6 @@
1818
#define DOCTEST_CONFIG_IMPLEMENT
1919
#include <doctest/doctest.h>
2020

21-
// Transitively see a header that tries to use ThreadMessaging, so need to
22-
// create static singleton
23-
std::unique_ptr<threading::ThreadMessaging>
24-
threading::ThreadMessaging::singleton = nullptr;
25-
2621
using IndexA = ccf::indexing::strategies::SeqnosByKey_InMemory<decltype(map_a)>;
2722
using LazyIndexA = ccf::indexing::LazyStrategy<IndexA>;
2823

src/node/rpc/test/frontend_test.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,6 @@
2626
#include <iostream>
2727
#include <string>
2828

29-
namespace threading
30-
{
31-
std::unique_ptr<::threading::ThreadMessaging> ThreadMessaging::singleton =
32-
nullptr;
33-
};
34-
3529
using namespace ccf;
3630
using namespace std;
3731

src/node/test/channels.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,6 @@ void sleep_to_reinitiate()
4040
2 * ccf::Channel::min_gap_between_initiation_attempts);
4141
}
4242

43-
std::unique_ptr<threading::ThreadMessaging>
44-
threading::ThreadMessaging::singleton = nullptr;
45-
4643
class IORingbuffersFixture
4744
{
4845
protected:

src/node/test/historical_queries.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@
2323
#define DOCTEST_CONFIG_IMPLEMENT
2424
#include <doctest/doctest.h>
2525

26-
std::unique_ptr<threading::ThreadMessaging>
27-
threading::ThreadMessaging::singleton = nullptr;
28-
2926
using NumToString = ccf::kv::Map<size_t, std::string>;
3027

3128
constexpr size_t certificate_validity_period_days = 365;

src/node/test/history.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@
1818
#include <doctest/doctest.h>
1919
#undef FAIL
2020

21-
std::unique_ptr<threading::ThreadMessaging>
22-
threading::ThreadMessaging::singleton = nullptr;
23-
2421
using MapT = ccf::kv::Map<size_t, size_t>;
2522

2623
constexpr size_t certificate_validity_period_days = 365;

src/node/test/history_bench.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,6 @@
1010
#define PICOBENCH_IMPLEMENT
1111
#include <picobench/picobench.hpp>
1212

13-
std::unique_ptr<threading::ThreadMessaging>
14-
threading::ThreadMessaging::singleton = nullptr;
15-
16-
namespace threading
17-
{
18-
std::map<std::thread::id, uint16_t> thread_ids;
19-
}
20-
2113
using namespace ccf;
2214

2315
class DummyConsensus : public ccf::kv::test::StubConsensus

0 commit comments

Comments
 (0)