File tree Expand file tree Collapse file tree 12 files changed +8
-52
lines changed Expand file tree Collapse file tree 12 files changed +8
-52
lines changed Original file line number Diff line number Diff line change 15
15
16
16
using namespace std ;
17
17
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
-
26
18
constexpr auto shash = ccf::ds::fnv_1a<size_t >;
27
19
28
20
int main (int argc, char ** argv)
Original file line number Diff line number Diff line change 7
7
#define DOCTEST_CONFIG_IMPLEMENT
8
8
#include < doctest/doctest.h>
9
9
10
- std::unique_ptr<threading::ThreadMessaging>
11
- threading::ThreadMessaging::singleton = nullptr ;
12
-
13
10
using ms = std::chrono::milliseconds;
14
11
15
12
DOCTEST_TEST_CASE (" Single node startup" * doctest::test_suite (" single" ))
Original file line number Diff line number Diff line change @@ -237,7 +237,11 @@ namespace threading
237
237
return tasks[task_id];
238
238
}
239
239
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
+ }
241
245
242
246
public:
243
247
static constexpr uint16_t max_num_threads = 24 ;
@@ -262,6 +266,7 @@ namespace threading
262
266
263
267
static void init (uint16_t num_task_queues)
264
268
{
269
+ auto & singleton = get_singleton ();
265
270
if (singleton != nullptr )
266
271
{
267
272
throw std::logic_error (" Called init() multiple times" );
@@ -272,11 +277,12 @@ namespace threading
272
277
273
278
static void shutdown ()
274
279
{
275
- singleton .reset ();
280
+ get_singleton () .reset ();
276
281
}
277
282
278
283
static ThreadMessaging& instance ()
279
284
{
285
+ auto & singleton = get_singleton ();
280
286
if (singleton == nullptr )
281
287
{
282
288
throw std::logic_error (
Original file line number Diff line number Diff line change @@ -21,9 +21,6 @@ static std::atomic<ccf::Enclave*> e;
21
21
std::atomic<uint16_t > num_pending_threads = 0 ;
22
22
std::atomic<uint16_t > num_complete_threads = 0 ;
23
23
24
- std::unique_ptr<threading::ThreadMessaging>
25
- threading::ThreadMessaging::singleton = nullptr ;
26
-
27
24
constexpr size_t min_gap_between_initiation_attempts_us =
28
25
2'000'000 ; // 2 seconds
29
26
std::chrono::microseconds ccf::Channel::min_gap_between_initiation_attempts (
Original file line number Diff line number Diff line change 18
18
#define DOCTEST_CONFIG_IMPLEMENT
19
19
#include < doctest/doctest.h>
20
20
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
-
26
21
using IndexA = ccf::indexing::strategies::SeqnosByKey_InMemory<decltype (map_a)>;
27
22
using LazyIndexA = ccf::indexing::LazyStrategy<IndexA>;
28
23
Original file line number Diff line number Diff line change 26
26
#include < iostream>
27
27
#include < string>
28
28
29
- namespace threading
30
- {
31
- std::unique_ptr<::threading::ThreadMessaging> ThreadMessaging::singleton =
32
- nullptr ;
33
- };
34
-
35
29
using namespace ccf ;
36
30
using namespace std ;
37
31
Original file line number Diff line number Diff line change @@ -40,9 +40,6 @@ void sleep_to_reinitiate()
40
40
2 * ccf::Channel::min_gap_between_initiation_attempts);
41
41
}
42
42
43
- std::unique_ptr<threading::ThreadMessaging>
44
- threading::ThreadMessaging::singleton = nullptr ;
45
-
46
43
class IORingbuffersFixture
47
44
{
48
45
protected:
Original file line number Diff line number Diff line change 23
23
#define DOCTEST_CONFIG_IMPLEMENT
24
24
#include < doctest/doctest.h>
25
25
26
- std::unique_ptr<threading::ThreadMessaging>
27
- threading::ThreadMessaging::singleton = nullptr ;
28
-
29
26
using NumToString = ccf::kv::Map<size_t , std::string>;
30
27
31
28
constexpr size_t certificate_validity_period_days = 365 ;
Original file line number Diff line number Diff line change 18
18
#include < doctest/doctest.h>
19
19
#undef FAIL
20
20
21
- std::unique_ptr<threading::ThreadMessaging>
22
- threading::ThreadMessaging::singleton = nullptr ;
23
-
24
21
using MapT = ccf::kv::Map<size_t , size_t >;
25
22
26
23
constexpr size_t certificate_validity_period_days = 365 ;
Original file line number Diff line number Diff line change 10
10
#define PICOBENCH_IMPLEMENT
11
11
#include < picobench/picobench.hpp>
12
12
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
-
21
13
using namespace ccf ;
22
14
23
15
class DummyConsensus : public ccf ::kv::test::StubConsensus
You can’t perform that action at this time.
0 commit comments