3 #include "hdr_intrusive_msqueue.h"
4 #include <cds/intrusive/vyukov_mpmc_cycle_queue.h>
8 #define TEST(X) void IntrusiveQueueHeaderTest::test_##X() { test2<X>(); }
20 typedef ci::VyukovMPMCCycleQueue<
22 ,co::buffer< co::v::static_buffer< int, 1024 > >
23 ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
24 ,co::memory_model< co::v::sequential_consistent >
25 > VyukovMPMCCycleQueue_stat;
27 typedef ci::VyukovMPMCCycleQueue<
29 ,co::buffer< co::v::static_buffer< int, 1024 > >
30 ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
31 ,co::item_counter< cds::atomicity::item_counter >
32 ,co::memory_model< co::v::relaxed_ordering >
33 > VyukovMPMCCycleQueue_stat_ic;
35 class VyukovMPMCCycleQueue_dyn
36 : public ci::VyukovMPMCCycleQueue<
38 ,co::buffer< co::v::dynamic_buffer< int > >
39 ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
42 typedef ci::VyukovMPMCCycleQueue<
44 ,co::buffer< co::v::dynamic_buffer< int > >
45 ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
48 VyukovMPMCCycleQueue_dyn()
53 class VyukovMPMCCycleQueue_dyn_ic
54 : public ci::VyukovMPMCCycleQueue<
56 ,co::buffer< co::v::dynamic_buffer< int > >
57 ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
58 ,co::item_counter< cds::atomicity::item_counter >
61 typedef ci::VyukovMPMCCycleQueue<
63 ,co::buffer< co::v::dynamic_buffer< int > >
64 ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
65 ,co::item_counter< cds::atomicity::item_counter >
68 VyukovMPMCCycleQueue_dyn_ic()
74 TEST(VyukovMPMCCycleQueue_stat)
75 TEST(VyukovMPMCCycleQueue_stat_ic)
76 TEST(VyukovMPMCCycleQueue_dyn)
77 TEST(VyukovMPMCCycleQueue_dyn_ic)