diff options
Diffstat (limited to 'tests/Auto_IncDec_Test.cpp')
-rw-r--r-- | tests/Auto_IncDec_Test.cpp | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/tests/Auto_IncDec_Test.cpp b/tests/Auto_IncDec_Test.cpp deleted file mode 100644 index 169ec22b58e..00000000000 --- a/tests/Auto_IncDec_Test.cpp +++ /dev/null @@ -1,152 +0,0 @@ -// $Id$ - -//============================================================================ -// -// = LIBRARY -// tests -// -// = FILENAME -// Auto_IncDec_Test.cpp -// -// = DESCRIPTION -// This is a simple test of the Auto Increment/Decrement Class in -// ACE. -// -// = AUTHOR -// Edan Ayal <EdanA@cti2.com> -// -//============================================================================ - -#include "ace/Auto_IncDec_T.h" -#include "ace/Thread_Manager.h" -#include "tests/test_config.h" - -ACE_RCSID(tests, Auto_IncDec_Test, "Auto_IncDec_Test.cpp, by Edan Ayal") - -#if defined (ACE_HAS_THREADS) - -// Default number of threads. -static size_t n_threads = 15; - -typedef ACE_Atomic_Op<ACE_Thread_Mutex, int> INTERLOCKED_INT; -static INTERLOCKED_INT current_threads_in_first_section; -static INTERLOCKED_INT current_threads_in_second_section; - -static void * -worker (void *) -{ - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT (" (%t) worker starting\n"))); - - { // First section. - ACE_Auto_IncDec<INTERLOCKED_INT> threads_in_section_auto_inc_dec - (current_threads_in_first_section); - - // Wait according to the number of threads... - ACE_Time_Value pause (current_threads_in_first_section.value (), - 0); - ACE_OS::sleep (pause); - } - - { // Second section. - ACE_Auto_IncDec<INTERLOCKED_INT> threads_in_section_auto_inc_dec - (current_threads_in_second_section); - - // Wait according to the number of threads inside the previous - // section... - ACE_Time_Value pause (current_threads_in_first_section.value (), - 0); - ACE_OS::sleep (pause); - } - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT (" (%t) worker exiting\n"))); - return 0; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Atomic_Op<ACE_Thread_Mutex, int>; -template class ACE_Auto_IncDec<ACE_Atomic_Op<ACE_Thread_Mutex, int> >; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Atomic_Op<ACE_Thread_Mutex, int> -#pragma instantiate ACE_Auto_IncDec<ACE_Atomic_Op<ACE_Thread_Mutex, int> > -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ - -#else -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Auto_IncDec<int>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Auto_IncDec<int> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ -#endif /* ACE_HAS_THREADS */ - -// Spawn off threads. - -int -main (int, ACE_TCHAR *[]) -{ - ACE_START_TEST (ACE_TEXT ("Auto_IncDec_Test")); - -#if defined (ACE_HAS_THREADS) - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT (" (%t) main thread starting\n"))); - - current_threads_in_first_section = 0; - current_threads_in_second_section = 0; - - if (ACE_Thread_Manager::instance ()->spawn_n - (n_threads, - ACE_THR_FUNC (worker), - 0, - THR_NEW_LWP) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_TEXT ("%p\n"), - ACE_TEXT ("spawn_n")), - -1); - // Make sure at least one thread is started... - ACE_Thread::yield (); - - while (ACE_Thread_Manager::instance ()->count_threads ()) - { - // wait according to the number of threads... - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT (" %d in first section, %d in second section\n"), - current_threads_in_first_section.value (), - current_threads_in_second_section.value ())); - - ACE_Time_Value pause (1, 0); - ACE_OS::sleep (pause); - } - - ACE_Thread_Manager::instance ()->wait (); - - ACE_ASSERT (current_threads_in_first_section.value () == 0 - && current_threads_in_second_section.value () == 0); - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT (" (%t) exiting main thread\n"))); -#else - int counter = 0; - { - ACE_Auto_IncDec<int> Auto_IncDec1 (counter); - ACE_ASSERT (counter == 1); - - ACE_Auto_IncDec<int> Auto_IncDec2 (counter); - ACE_ASSERT (counter == 2); - - { - ACE_ASSERT (counter == 2); - ACE_Auto_IncDec<int> Auto_IncDec3 (counter); - ACE_ASSERT (counter == 3); - } - - ACE_ASSERT (counter == 2); - } - - ACE_ASSERT (counter == 0); - -#endif /* ACE_HAS_THREADS */ - - ACE_END_TEST; - return 0; -} |