static size_t s_nPushThreadCount = 4;
static size_t s_nPopThreadCount = 4;
static size_t s_nStackSize = 1000000;
+ static size_t s_nEliminationStackSize = 500000;
static size_t s_nEliminationSize = 4;
static atomics::atomic<size_t> s_nWorkingProducers( 0 );
s_nPushThreadCount = cfg.get_size_t( "PushThreadCount", s_nPushThreadCount );
s_nPopThreadCount = cfg.get_size_t( "PopThreadCount", s_nPopThreadCount );
s_nStackSize = cfg.get_size_t( "StackSize", s_nStackSize );
+ s_nEliminationStackSize =
+ cfg.get_size_t("EliminationStackSize", s_nEliminationStackSize);
s_nEliminationSize = cfg.get_size_t( "EliminationSize", s_nEliminationSize );
if ( s_nPushThreadCount == 0 )
};
CDSSTRESS_TreiberStack( stack_push_pop )
+
+ #undef CDSSTRESS_EliminationStack_F
+
+ #define CDSSTRESS_EliminationStack_F( test_fixture, type_name ) \
+ TEST_F( test_fixture, type_name ) \
+ { \
+ typedef stack::Types< value_type >::type_name stack_type; \
+ s_nStackSize = s_nEliminationStackSize; \
+ stack_type stack( s_nEliminationSize ); \
+ test_elimination( stack ); \
+ }
+
CDSSTRESS_EliminationStack( stack_push_pop )
//CDSSTRESS_FCStack( stack_push_pop )
//CDSSTRESS_FCDeque( stack_push_pop )