MCPcopy Create free account
hub / github.com/Abc-Arbitrage/Disruptor-cpp / BOOST_AUTO_TEST_CASE

Function BOOST_AUTO_TEST_CASE

Disruptor.Tests/LifecycleAwareTests.cpp:57–78  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

55};
56
57BOOST_AUTO_TEST_CASE(ShouldNotifyOfBatchProcessorLifecycle)
58{
59 ManualResetEvent startSignal(false);
60 ManualResetEvent shutdownSignal(false);
61 auto ringBuffer = std::make_shared< RingBuffer< StubEvent > >([] { return StubEvent(0); }, 16);
62
63 auto sequenceBarrier = ringBuffer->newBarrier();
64 auto eventHandler = std::make_shared< LifecycleAwareEventHandler >(startSignal, shutdownSignal);
65 auto batchEventProcessor = std::make_shared< BatchEventProcessor< StubEvent > >(ringBuffer, sequenceBarrier, eventHandler);
66
67 auto thread = std::thread([&] { batchEventProcessor->run(); });
68
69 startSignal.waitOne();
70 batchEventProcessor->halt();
71
72 shutdownSignal.waitOne();
73
74 thread.join();
75
76 BOOST_CHECK_EQUAL(eventHandler->startCounter(), 1);
77 BOOST_CHECK_EQUAL(eventHandler->shutdownCounter(), 1);
78}
79
80BOOST_AUTO_TEST_SUITE_END()

Callers

nothing calls this directly

Calls 7

StubEventClass · 0.85
waitOneMethod · 0.80
startCounterMethod · 0.80
shutdownCounterMethod · 0.80
newBarrierMethod · 0.45
runMethod · 0.45
haltMethod · 0.45

Tested by

no test coverage detected