diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2002-08-28 06:11:23 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2002-08-28 06:11:23 +0000 |
commit | f320e7bed02bdd5fe38d8e587ba8e655fa827207 (patch) | |
tree | 467d6273b5883a29fe2c99da7074610fc7253249 | |
parent | 2ba2ba0f0d17493c380c4cca74f47165dc177c79 (diff) | |
download | ATCD-f320e7bed02bdd5fe38d8e587ba8e655fa827207.tar.gz |
ChangeLogTag: Wed Aug 28 06:03:12 UTC 2002 Johnny Willemsen <jwillemsen@remedy.nl>
-rw-r--r-- | ChangeLog | 19 | ||||
-rw-r--r-- | ChangeLogs/ChangeLog-03a | 19 | ||||
-rw-r--r-- | TAO/ChangeLog | 49 | ||||
-rw-r--r-- | TAO/tao/Invocation.h | 6 | ||||
-rw-r--r-- | etc/tao.doxygen | 2 | ||||
-rw-r--r-- | etc/tao_rtportableserver.doxygen | 3 | ||||
-rw-r--r-- | tests/Timer_Queue_Test.cpp | 292 |
7 files changed, 209 insertions, 181 deletions
diff --git a/ChangeLog b/ChangeLog index c6f0f1209a6..0df7a5086ff 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +Wed Aug 28 06:12:12 UTC 2002 Johnny Willemsen <jwillemsen@remedy.nl> + + * etc/tao.doxygen: + Removed Services.h of the list of not to parse files + + * etc/tao_rtportableserver.doxygen: + Added TAO_NAMESPACE to list of to expanded macros + + * tests/Timer_Queue_Test.cpp: + Fixed unicode build error + Tue Aug 27 19:09:17 2002 Steve Huston <shuston@riverace.com> * ace/Get_Opt.h: Documentation improvements. @@ -16,18 +27,18 @@ Tue Aug 27 19:03:05 2002 Balachandran Natarajan <bala@isis-server.vuse.vanderb Tue Aug 27 18:52:59 2002 Balachandran Natarajan <bala@isis-server.vuse.vanderbilt.edu> - * ace/Select_Reactor_T.cpp (wait_for_multiple_events): Normally, + * ace/Select_Reactor_T.cpp (wait_for_multiple_events): Normally, select() will reset the bits in dispatch_set so that only those filed descriptors that are ready will have bits set. However, when an error occurs, the bit set remains as it was when the select call was first made. Thus, we now have a dispatch_set that has every file descriptor that was originally waited for, which is not correct. We must clear all the bit sets because we - have no idea if any of the file descriptors is ready. - + have no idea if any of the file descriptors is ready. + Thanks to Jody Hagins <jody@atdesk.com> and Carlos O'Ryan <coryan@atdesk.com> for reporting this problem and proving the - patches. + patches. Tue Aug 27 15:56:10 2002 Ossama Othman <ossama@uci.edu> diff --git a/ChangeLogs/ChangeLog-03a b/ChangeLogs/ChangeLog-03a index c6f0f1209a6..0df7a5086ff 100644 --- a/ChangeLogs/ChangeLog-03a +++ b/ChangeLogs/ChangeLog-03a @@ -1,3 +1,14 @@ +Wed Aug 28 06:12:12 UTC 2002 Johnny Willemsen <jwillemsen@remedy.nl> + + * etc/tao.doxygen: + Removed Services.h of the list of not to parse files + + * etc/tao_rtportableserver.doxygen: + Added TAO_NAMESPACE to list of to expanded macros + + * tests/Timer_Queue_Test.cpp: + Fixed unicode build error + Tue Aug 27 19:09:17 2002 Steve Huston <shuston@riverace.com> * ace/Get_Opt.h: Documentation improvements. @@ -16,18 +27,18 @@ Tue Aug 27 19:03:05 2002 Balachandran Natarajan <bala@isis-server.vuse.vanderb Tue Aug 27 18:52:59 2002 Balachandran Natarajan <bala@isis-server.vuse.vanderbilt.edu> - * ace/Select_Reactor_T.cpp (wait_for_multiple_events): Normally, + * ace/Select_Reactor_T.cpp (wait_for_multiple_events): Normally, select() will reset the bits in dispatch_set so that only those filed descriptors that are ready will have bits set. However, when an error occurs, the bit set remains as it was when the select call was first made. Thus, we now have a dispatch_set that has every file descriptor that was originally waited for, which is not correct. We must clear all the bit sets because we - have no idea if any of the file descriptors is ready. - + have no idea if any of the file descriptors is ready. + Thanks to Jody Hagins <jody@atdesk.com> and Carlos O'Ryan <coryan@atdesk.com> for reporting this problem and proving the - patches. + patches. Tue Aug 27 15:56:10 2002 Ossama Othman <ossama@uci.edu> diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 9f6e936b772..6f6d6b4f9a2 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,19 +1,24 @@ +Wed Aug 28 06:06:12 UTC 2002 Johnny Willemsen <jwillemsen@remedy.nl> + + * tao/Invocation.h: + Fixed doxygen warnings + Tue Aug 27 18:31:53 2002 Balachandran Natarajan <bala@isis-server.vuse.vanderbilt.edu> - * tao/Transport.cpp: Made the methods purge_entry () and make_idle + * tao/Transport.cpp: Made the methods purge_entry () and make_idle () more readable. Instead of checking whether the hash_map entry is available within the transport classes, just defer that - decision to the Transport_Cache_Manager classes. - + decision to the Transport_Cache_Manager classes. + * tao/Transport_Cache_Manager.cpp: * tao/Transport_Cache_Manager.inl: The make_idle () and purge_entry () methods now use the classical double-checked - locking optimization pattern before calling the actual - implementations. + locking optimization pattern before calling the actual + implementations. This fixes [BUG 1276]. Thanks to Carlos O'Ryan <coryan@atdesk.com> for supplying the patches. - + Tue Aug 27 15:56:05 2002 Ossama Othman <ossama@uci.edu> * orbsvcs/tests/Security/Callback/server_i.cpp (test_request): @@ -35,16 +40,16 @@ Tue Aug 27 16:22:27 2002 Jeff Parsons <parsons@cs.wustl.edu> Tue Aug 27 15:41:57 2002 Balachandran Natarajan <bala@isis-server.vuse.vanderbilt.edu> * tests/ORB_shutdown/server.bor: - * tests/ORB_shutdown/Makefile.bor: Added these files. - + * tests/ORB_shutdown/Makefile.bor: Added these files. + * tests/Makefile: Added the new test for the daily builds to pick - up. - + up. + Tue Aug 27 15:48:17 2002 Irfan Pyarali <irfan@oomworks.com> Thanks to Christian Klutz <cklutz@gmx.net> for reporting the bug that resulted in the following changes. - + * tao/PortableServer/PortableServer_PolicyFactory.cpp: New class for creating POA Policies. @@ -52,7 +57,7 @@ Tue Aug 27 15:48:17 2002 Irfan Pyarali <irfan@oomworks.com> initialization class that adds TAO_PortableServer_PolicyFactory as a factory for POA Policies. - * tao/PortableServer/PortableServer.cpp (init): Registered + * tao/PortableServer/PortableServer.cpp (init): Registered TAO_PortableServer_ORBInitializer with the PortableInterceptor. * tao/PortableServer/POA_Policies.cpp (create): Added create @@ -61,7 +66,7 @@ Tue Aug 27 15:48:17 2002 Irfan Pyarali <irfan@oomworks.com> * tests/POA/Policies: This program tests the construction of POA policies, both through the generic ORB::create_policy interface - and the PortableServer specific interfaces. + and the PortableServer specific interfaces. The following files were added: @@ -78,7 +83,7 @@ Tue Aug 27 15:48:17 2002 Irfan Pyarali <irfan@oomworks.com> - tests/TAO_Tests.dsw - tests/POA/Makefile - tests/POA/Makefile.bor - - tests/POA/README + - tests/POA/README - $ACE_ROOT/bin/auto_run_tests.lst * tao/PortableServer: Added new files @@ -98,13 +103,13 @@ Tue Aug 27 12:42:58 2002 Irfan Pyarali <irfan@oomworks.com> Tue Aug 27 12:40:12 2002 Balachandran Natarajan <bala@isis-server.vuse.vanderbilt.edu> - Fix for [BUG 1265]. - + Fix for [BUG 1265]. + * tao/Adapter.cpp: * tao/Adapter.h: Methods check_close () and close () have an empty ACE_THROW_SPEC (()) to indicate that no exceptions pass through - to the higher layer. - + to the higher layer. + * tao/ORB_Core.h: * tao/ORB_Core.cpp (shutdown): Applied the patch in BUG 1265 which basically releases the mutex before calling actual close () on @@ -115,10 +120,10 @@ Tue Aug 27 12:40:12 2002 Balachandran Natarajan <bala@isis-server.vuse.vanderb Please see the discussions in BUG 1265 and chapter 2 of "Exceptional C++" by Herb Sutter for details on why this is a - good idea. + good idea. * tao/ORB.cpp (shutdown): Added a comment as to why we cannot lock - exceptions within this method. + exceptions within this method. Tue Aug 27 10:22:50 2002 Balachandran Natarajan <bala@isis-server.vuse.vanderbilt.edu> @@ -139,8 +144,8 @@ Tue Aug 27 10:03:57 2002 Balachandran Natarajan <bala@isis-server.vuse.vanderb * tests/ORB_shutdown/server.dsp (BuildCmds): A simple test to replicate the problem outlined in BUG 1265. - Sorry folks, my mail id is long and I cant help it :(. - + Sorry folks, my mail id is long and I cant help it :(. + Mon Aug 26 20:34:11 2002 Jeff Parsons <parsons@cs.wustl.edu> * TAO_IDL/ast/ast_interface.cpp: diff --git a/TAO/tao/Invocation.h b/TAO/tao/Invocation.h index 48eceef97af..247efce5220 100644 --- a/TAO/tao/Invocation.h +++ b/TAO/tao/Invocation.h @@ -140,12 +140,12 @@ public: int perform_call (TAO_Transport_Descriptor_Interface &desc ACE_ENV_ARG_DECL); - /// Dynamically allocate @var inconsistent_policies_ PolicyList. + /// Dynamically allocate inconsistent_policies_ PolicyList. void init_inconsistent_policies (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)); - /// Return PolicyList stored in \param inconsistent_policies_ and - /// give up its ownership. User must deallocate memory. + /// Return PolicyList stored in inconsistent_policies_ and give up its + /// ownership. User must deallocate memory. CORBA::PolicyList *get_inconsistent_policies (void); /** diff --git a/etc/tao.doxygen b/etc/tao.doxygen index 14703ac1434..3e7ef0fd406 100644 --- a/etc/tao.doxygen +++ b/etc/tao.doxygen @@ -52,7 +52,7 @@ INPUT = TAO/tao FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl *.txt RECURSIVE = EXCLUDE = -EXCLUDE_PATTERNS = Services.h +EXCLUDE_PATTERNS = EXAMPLE_PATH = EXAMPLE_PATTERNS = IMAGE_PATH = diff --git a/etc/tao_rtportableserver.doxygen b/etc/tao_rtportableserver.doxygen index dd2df084122..7f4c5822317 100644 --- a/etc/tao_rtportableserver.doxygen +++ b/etc/tao_rtportableserver.doxygen @@ -122,7 +122,8 @@ PREDEFINED = EXPAND_AS_DEFINED = ACE_RCSID \ ACE_UNIMPLEMENTED_FUNC \ ACE_CACHE_MAP_MANAGER \ - ACE_THROW_SPEC + ACE_THROW_SPEC \ + TAO_NAMESPACE #--------------------------------------------------------------------------- # Configuration::addtions related to external references diff --git a/tests/Timer_Queue_Test.cpp b/tests/Timer_Queue_Test.cpp index dc95ef85b33..dc06030b4c2 100644 --- a/tests/Timer_Queue_Test.cpp +++ b/tests/Timer_Queue_Test.cpp @@ -4,7 +4,7 @@ // // = LIBRARY // tests -// +// // = FILENAME // Timer_Queue_Test.cpp // @@ -17,10 +17,10 @@ // line arguments are needed to run the test. // // = AUTHORS -// Douglas C. Schmidt <schmidt@cs.wustl.edu>, -// Prashant Jain <pjain@cs.wustl.edu>, and +// Douglas C. Schmidt <schmidt@cs.wustl.edu>, +// Prashant Jain <pjain@cs.wustl.edu>, and // Darrell Brunsch <brunsch@cs.wustl.edu> -// +// // ============================================================================ #include "test_config.h" @@ -46,7 +46,7 @@ randomize_array (ACE_Time_Value array[], int size) array [size] = temp; } } - + // Number of iterations for the performance tests. Some platforms // have a very high ACE_DEFAULT_TIMERS (HP-UX is 400), so limit this // to a reasonable run time. @@ -63,14 +63,14 @@ class Example_Handler : public ACE_Event_Handler { public: Example_Handler (void): close_count_ (0) {} - + virtual int handle_close (ACE_HANDLE, ACE_Reactor_Mask mask) { ACE_ASSERT (mask == ACE_Event_Handler::TIMER_MASK); this->close_count_++; return 0; } - + virtual int handle_timeout (const ACE_Time_Value &, const void *arg) { @@ -80,7 +80,7 @@ public: } return 0; } - + int close_count_; // Keeps track of the number of times that <handle_close> is called. }; @@ -89,37 +89,37 @@ static void test_functionality (ACE_Timer_Queue *tq) { Example_Handler eh; - + ACE_ASSERT (tq->is_empty ()); ACE_ASSERT (ACE_Time_Value::zero == ACE_Time_Value (0)); - long timer_id, timer_id2; - + long timer_id, timer_id2; + // Do a test on earliest_time. ACE_Time_Value earliest_time = tq->gettimeofday (); - + timer_id = tq->schedule (&eh, (const void *) 1, earliest_time); - + ACE_OS::sleep (ACE_Time_Value (0, 10)); - + timer_id2 = tq->schedule (&eh, (const void *) 1, tq->gettimeofday ()); - + ACE_ASSERT (tq->earliest_time () == earliest_time); - + tq->cancel (timer_id); tq->cancel (timer_id2); ACE_ASSERT (tq->is_empty () == 1); ACE_ASSERT (eh.close_count_ == 0); - + timer_id = tq->schedule (&eh, - (const void *) 1, + (const void *) 1, tq->gettimeofday ()); ACE_ASSERT (timer_id != -1); ACE_ASSERT (tq->is_empty () == 0); //== - + ACE_ASSERT (tq->schedule (&eh, (const void *) 42, tq->gettimeofday ()) != -1); @@ -128,17 +128,17 @@ test_functionality (ACE_Timer_Queue *tq) (const void *) 42, tq->gettimeofday ()) != -1); ACE_ASSERT (tq->is_empty () == 0); //== - + // The following method will trigger a call to <handle_close>. ACE_ASSERT (eh.close_count_ == 0); ACE_ASSERT (tq->cancel (timer_id, 0, 0) == 1); ACE_ASSERT (tq->is_empty () == 0); ACE_ASSERT (eh.close_count_ == 1); - + ACE_ASSERT (tq->expire () == 2); - + ACE_ASSERT (tq->schedule (&eh, - (const void *) 007, + (const void *) 007, tq->gettimeofday ()) != -1); ACE_ASSERT (tq->schedule (&eh, (const void *) 42, @@ -146,7 +146,7 @@ test_functionality (ACE_Timer_Queue *tq) ACE_ASSERT (tq->schedule (&eh, (const void *) 42, tq->gettimeofday () + ACE_Time_Value (100)) != -1); - + // The following will trigger a call to <handle_close> when it // cancels the second timer. This happens because the first timer // has an <act> of 007, which causes eh.handle_timeout () to return @@ -158,38 +158,38 @@ test_functionality (ACE_Timer_Queue *tq) ACE_ASSERT (eh.close_count_ == 2); ACE_ASSERT (tq->is_empty () == 1); //ACE_ASSERT (tq->cancel (&eh, 0) == 0); - + ACE_ASSERT (tq->schedule (&eh, - (const void *) 4, + (const void *) 4, tq->gettimeofday ()) != -1); ACE_ASSERT (tq->schedule (&eh, - (const void *) 5, + (const void *) 5, tq->gettimeofday ()) != -1); - + // The following method will trigger a call to <handle_close>. ACE_ASSERT (eh.close_count_ == 2); ACE_ASSERT (tq->cancel (&eh, 0) == 2); ACE_ASSERT (eh.close_count_ == 3); // Only one call to handle_close() even though two timers ACE_ASSERT (tq->is_empty ()); ACE_ASSERT (tq->expire () == 0); - + // This tests to make sure that <handle_close> is called when there // is only one timer of the type in the queue ACE_ASSERT (eh.close_count_ == 3); ACE_ASSERT (tq->schedule (&eh, - (const void *) 007, + (const void *) 007, tq->gettimeofday ()) != -1); ACE_ASSERT (tq->expire () == 1); ACE_ASSERT (eh.close_count_ == 4); - + timer_id = tq->schedule (&eh, (const void *) 6, tq->gettimeofday ()); ACE_ASSERT (timer_id != -1); ACE_ASSERT (tq->schedule (&eh, - (const void *) 7, + (const void *) 7, tq->gettimeofday ()) != -1); - + ACE_ASSERT (eh.close_count_ == 4); // The following method will *not* trigger a call to <handle_close>. ACE_ASSERT (tq->cancel (timer_id) == 1); @@ -207,12 +207,12 @@ test_performance (ACE_Timer_Queue *tq, Example_Handler eh; ACE_Profile_Timer timer; int i; - + ACE_ASSERT (tq->is_empty ()); ACE_ASSERT (ACE_Time_Value::zero == ACE_Time_Value (0)); - + // Test the amount of time required to schedule all the timers. - + ACE_Time_Value *times; ACE_NEW (times, ACE_Time_Value[max_iterations]); @@ -221,180 +221,180 @@ test_performance (ACE_Timer_Queue *tq, times[i] = tq->gettimeofday() + ACE_Time_Value(0, i * 50 * 1000); ACE_Time_Value last_time = times[max_iterations-1]; - + timer.start (); - + for (i = 0; i < max_iterations; i++) { - timer_ids[i] = tq->schedule (&eh, - (const void *) 42, + timer_ids[i] = tq->schedule (&eh, + (const void *) 42, times[i]); ACE_ASSERT (timer_ids[i] != -1); } - + ACE_ASSERT (tq->is_empty () == 0); - + timer.stop (); - + ACE_Profile_Timer::ACE_Elapsed_Time et; - + timer.elapsed_time (et); - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("time to schedule %d timers for %s\n"), + + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("time to schedule %d timers for %s\n"), max_iterations, test_name)); - ACE_DEBUG ((LM_DEBUG, + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("real time = %f secs, user time = %f secs, system time = %f secs\n"), et.real_time, et.user_time, et.system_time)); - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("time per call = %f usecs\n"), + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("time per call = %f usecs\n"), (et.user_time / ACE_timer_t (max_iterations)) * 1000000)); - + // Test the amount of time required to cancel all the timers. - + timer.start (); - + for (i = max_iterations - 1; i >= 0; i--) tq->cancel (timer_ids[i]); - + timer.stop (); - + ACE_ASSERT (tq->is_empty ()); - + timer.elapsed_time (et); - - ACE_DEBUG ((LM_DEBUG, + + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("time to cancel %d timers for %s\n"), max_iterations, test_name)); - ACE_DEBUG ((LM_DEBUG, + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("real time = %f secs, user time = %f secs, system time = %f secs\n"), et.real_time, et.user_time, et.system_time)); - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("time per call = %f usecs\n"), + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("time per call = %f usecs\n"), (et.user_time / ACE_timer_t (max_iterations)) * 1000000)); - + // Test the amount of time required to schedule and expire all the // timers. - + timer.start (); - + for (i = 0; i < max_iterations; i++) - ACE_ASSERT (tq->schedule (&eh, - (const void *) 42, + ACE_ASSERT (tq->schedule (&eh, + (const void *) 42, times[i]) != -1); - + ACE_ASSERT (tq->is_empty () == 0); - + // Expire all the timers. tq->expire (last_time + ACE_Time_Value(1)); - + timer.stop (); - + ACE_ASSERT (tq->is_empty ()); - + timer.elapsed_time (et); - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("time to schedule and expire %d timers for %s\n"), + + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("time to schedule and expire %d timers for %s\n"), max_iterations, test_name)); - ACE_DEBUG ((LM_DEBUG, + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("real time = %f secs, user time = %f secs, system time = %f secs\n"), et.real_time, et.user_time, et.system_time)); - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("time per call = %f usecs\n"), + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("time per call = %f usecs\n"), (et.user_time / ACE_timer_t (max_iterations)) * 1000000)); - + randomize_array(times, max_iterations); // Test the amount of time required to randomly cancel all the - // timers. + // timers. for (i = 0; i < max_iterations; i++) { - timer_ids[i] = tq->schedule (&eh, + timer_ids[i] = tq->schedule (&eh, (const void *) 42, - times[i]); + times[i]); ACE_ASSERT (timer_ids[i] != -1); } - + ACE_ASSERT (tq->is_empty () == 0); - + timer.start (); - + for (i = max_iterations - 1; i >= 0; i--) tq->cancel (timer_ids[i]); - + ACE_ASSERT (tq->is_empty ()); - + timer.stop (); - + timer.elapsed_time (et); - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("time to randomly cancel %d timers for %s\n"), + + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("time to randomly cancel %d timers for %s\n"), max_iterations, test_name)); - ACE_DEBUG ((LM_DEBUG, + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("real time = %f secs, user time = %f secs, system time = %f secs\n"), et.real_time, et.user_time, et.system_time)); - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("time per call = %f usecs\n"), + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("time per call = %f usecs\n"), (et.user_time / ACE_timer_t (max_iterations)) * 1000000)); - + // Test the amount of time required to randomly schedule all the timers. - + timer.start (); - + for (i = 0; i < max_iterations; i++) { - timer_ids[i] = tq->schedule (&eh, - (const void *) 42, + timer_ids[i] = tq->schedule (&eh, + (const void *) 42, times[i]); ACE_ASSERT (timer_ids[i] != -1); } - + timer.stop (); - + ACE_ASSERT (tq->is_empty () == 0); - + timer.elapsed_time (et); - - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("time to randomly schedule %d timers for %s\n"), + + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("time to randomly schedule %d timers for %s\n"), max_iterations, test_name)); - ACE_DEBUG ((LM_DEBUG, + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("real time = %f secs, user time = %f secs, system time = %f secs\n"), et.real_time, et.user_time, et.system_time)); - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("time per call = %f usecs\n"), + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("time per call = %f usecs\n"), (et.user_time / ACE_timer_t (max_iterations)) * 1000000)); - + // Test the amount of time required to expire all the timers. - + timer.start (); - + tq->expire (last_time + ACE_Time_Value(1)); - + ACE_ASSERT (tq->is_empty ()); - + timer.stop (); - + timer.elapsed_time (et); - - ACE_DEBUG ((LM_DEBUG, + + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("time to expire %d randomly scheduled timers for %s\n"), max_iterations, test_name)); - ACE_DEBUG ((LM_DEBUG, + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("real time = %f secs, user time = %f secs, system time = %f secs\n"), et.real_time, et.user_time, et.system_time)); - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("time per call = %f usecs\n"), + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("time per call = %f usecs\n"), (et.user_time / ACE_timer_t (max_iterations)) * 1000000)); - + delete [] times; } @@ -402,9 +402,9 @@ class Timer_Queue_Stack { // = TITLE // Keeps track of the <Timer_Queue>s that we're going to test. - // + // // = DESCRIPTION - // This data structure is organized as a stack to make it easy to implement. + // This data structure is organized as a stack to make it easy to implement. public: // = Initialization method Timer_Queue_Stack (ACE_Timer_Queue *queue, @@ -415,66 +415,66 @@ public: next_ (next) {} // "Push" a new <queue> on the stack of <queue>s. - + ACE_Timer_Queue *queue_; // Pointer to the subclass of <ACE_Timer_Queue> that we're testing. - + const ACE_TCHAR *name_; // Name of the Queue that we're testing. - + Timer_Queue_Stack *next_; // Pointer to the next <Timer_Queue>. }; int -main (int argc, ACE_TCHAR *argv[]) +ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { ACE_START_TEST (ACE_TEXT ("Timer_Queue_Test")); - + ACE_OS::srand (ACE_OS::time (0L)); - + if (argc > 1) max_iterations = ACE_OS::atoi (argv[1]); - + // = Perform initializations. - + Timer_Queue_Stack *tq_stack = NULL; - + // Add new Timer_Queue implementations here. Note that these will // be executed in "reverse order". - + // Timer_Hash (Heap) ACE_NEW_RETURN (tq_stack, Timer_Queue_Stack (new ACE_Timer_Hash_Heap, ACE_TEXT ("ACE_Timer_Hash (Heap)"), tq_stack), -1); - + // Timer_Hash ACE_NEW_RETURN (tq_stack, Timer_Queue_Stack (new ACE_Timer_Hash, ACE_TEXT ("ACE_Timer_Hash"), tq_stack), -1); - + // Timer_stack ACE_NEW_RETURN (tq_stack, Timer_Queue_Stack (new ACE_Timer_List, ACE_TEXT ("ACE_Timer_List"), tq_stack), -1); - + // Timer_Wheel without preallocated memory ACE_NEW_RETURN (tq_stack, Timer_Queue_Stack (new ACE_Timer_Wheel, ACE_TEXT ("ACE_Timer_Wheel (non-preallocated)"), tq_stack), -1); - + // Timer_Wheel with preallocated memory. ACE_NEW_RETURN (tq_stack, - Timer_Queue_Stack (new ACE_Timer_Wheel (ACE_DEFAULT_TIMER_WHEEL_SIZE, - ACE_DEFAULT_TIMER_WHEEL_RESOLUTION, + Timer_Queue_Stack (new ACE_Timer_Wheel (ACE_DEFAULT_TIMER_WHEEL_SIZE, + ACE_DEFAULT_TIMER_WHEEL_RESOLUTION, max_iterations), ACE_TEXT ("ACE_Timer_Wheel (preallocated)"), tq_stack), @@ -485,14 +485,14 @@ main (int argc, ACE_TCHAR *argv[]) ACE_TEXT ("ACE_Timer_Heap (non-preallocated)"), tq_stack), -1); - + // Timer_Heap with preallocate memory. ACE_NEW_RETURN (tq_stack, Timer_Queue_Stack (new ACE_Timer_Heap (max_iterations, 1), ACE_TEXT ("ACE_Timer_Heap (preallocated)"), tq_stack), -1); - + // Timer_Heap without preallocated memory, using high-res time. (void) ACE_High_Res_Timer::global_scale_factor (); ACE_Timer_Heap *tq_heap = new ACE_Timer_Heap; @@ -502,30 +502,30 @@ main (int argc, ACE_TCHAR *argv[]) ACE_TEXT ("ACE_Timer_Heap (high-res timer)"), tq_stack), -1); - + // Create the Timer ID array ACE_NEW_RETURN (timer_ids, long[max_iterations], -1); - + Timer_Queue_Stack *tq_ptr = tq_stack; - + while (tq_ptr != NULL) { ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("**** starting test of %s\n"), + ACE_TEXT ("**** starting test of %s\n"), tq_ptr->name_)); test_functionality (tq_ptr->queue_); - test_performance (tq_ptr->queue_, + test_performance (tq_ptr->queue_, tq_ptr->name_); delete tq_ptr->queue_; Timer_Queue_Stack *temp = tq_ptr; tq_ptr = tq_ptr->next_; delete temp; } - + delete [] timer_ids; - + ACE_END_TEST; return 0; } |