#include "cppunit/thread.h"
#include "stack/intrusive_stack_type.h"
-#include "print_deque_stat.h"
// Multi-threaded stack test for push/pop operation
namespace istack {
class IntrusiveStack_PushPop: public CppUnitMini::TestCase
{
- CDS_ATOMIC::atomic<size_t> m_nWorkingProducers;
- static CDS_CONSTEXPR_CONST size_t c_nValArraySize = 1024;
- static CDS_CONSTEXPR_CONST size_t c_nBadConsumer = 0xbadc0ffe;
+ atomics::atomic<size_t> m_nWorkingProducers;
+ static CDS_CONSTEXPR const size_t c_nValArraySize = 1024;
+ static CDS_CONSTEXPR const size_t c_nBadConsumer = 0xbadc0ffe;
template <class Stack>
class Producer: public CppUnitMini::TestThread
++m_nPushError;
}
- getTest().m_nWorkingProducers.fetch_sub( 1, CDS_ATOMIC::memory_order_release );
+ getTest().m_nWorkingProducers.fetch_sub( 1, atomics::memory_order_release );
}
};
m_nDirtyPop = 0;
memset( m_arrPop, 0, sizeof(m_arrPop));
- while ( !(getTest().m_nWorkingProducers.load(CDS_ATOMIC::memory_order_acquire) == 0 && m_Stack.empty()) ) {
+ while ( !(getTest().m_nWorkingProducers.load(atomics::memory_order_acquire) == 0 && m_Stack.empty()) ) {
typename Stack::value_type * p = m_Stack.pop();
if ( p ) {
p->nConsumer = m_nThreadNo;
}
template <class Stack>
- void analyze( CppUnitMini::ThreadPool& pool, Stack& testStack )
+ void analyze( CppUnitMini::ThreadPool& pool, Stack& /*testStack*/ )
{
size_t nPushError = 0;
size_t nPopEmpty = 0;
template <class Stack>
void test( Stack& testStack, value_array<typename Stack::value_type>& arrValue )
{
- m_nWorkingProducers.store( s_nPushThreadCount, CDS_ATOMIC::memory_order_release );
+ m_nWorkingProducers.store( s_nPushThreadCount, atomics::memory_order_release );
size_t const nPushCount = s_nStackSize / s_nPushThreadCount;
typename Stack::value_type * pValStart = arrValue.get();
CDSUNIT_DECLARE_TreiberStack
CDSUNIT_DECLARE_EliminationStack
CDSUNIT_DECLARE_FCStack
- CDSUNIT_DECLARE_MichaelDeque
CDSUNIT_DECLARE_StdStack
CPPUNIT_TEST_SUITE(IntrusiveStack_PushPop)
CDSUNIT_TEST_TreiberStack
CDSUNIT_TEST_EliminationStack
CDSUNIT_TEST_FCStack
- CDSUNIT_TEST_MichaelDeque
CDSUNIT_TEST_StdStack
CPPUNIT_TEST_SUITE_END();
};