summaryrefslogtreecommitdiff
path: root/TAO/tests/Cubit/TAO/MT_Cubit/client.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tests/Cubit/TAO/MT_Cubit/client.cpp')
-rw-r--r--TAO/tests/Cubit/TAO/MT_Cubit/client.cpp230
1 files changed, 0 insertions, 230 deletions
diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/client.cpp b/TAO/tests/Cubit/TAO/MT_Cubit/client.cpp
deleted file mode 100644
index dcb0fb9a5a4..00000000000
--- a/TAO/tests/Cubit/TAO/MT_Cubit/client.cpp
+++ /dev/null
@@ -1,230 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO/tests
-//
-// = FILENAME
-// client.cpp
-//
-// = AUTHOR
-// Andy Gokhale, Brian Mendel, Sumedh Mungee, and Sergio Flores-Gaitan
-//
-// ============================================================================
-
-#include "client.h"
-
-int
-initialize (void)
-{
-#if defined (VXWORKS)
- hostAdd ("mv2604d", "130.38.183.132");
-#if defined (VME_DRIVER)
- STATUS status = vmeDrv ();
- if (status != OK)
- printf ("ERROR on call to vmeDrv()\n");
- status = vmeDevCreate ("/vme");
- if (status != OK)
- printf ("ERROR on call to vmeDevCreate()\n");
-#endif /* defined (VME_DRIVER) */
-#endif /* defined (VXWORKS) */
-
- // Make sure we've got plenty of socket handles. This call will use
- // the default maximum.
- ACE::set_handle_limit ();
-
- return 0;
-}
-
-int
-do_priority_inversion_test (Task_State &ts)
-{
- // Create the clients
- Client high_priority_client (&ts);
- Client low_priority_client (&ts);
-
- // Create the daemon thread in its own <ACE_Thread_Manager>.
- ACE_Thread_Manager thr_mgr;
-
- Util_Thread util_thread (&ts, &thr_mgr);
-
- ACE_Sched_Priority priority =
- ACE_Sched_Params::priority_min (ACE_SCHED_FIFO,
- ACE_SCOPE_THREAD);
-
- // First activate the Utilization thread. It will wait until all
- // threads have finished binding.
- util_thread.activate (THR_BOUND,
- 1,
- 0,
- priority);
-
- // Now activate the high priority client.
-
- // @@ The ifdef here is temporarily placed here until
- // I figure out how to map NT's thread priorities
- // into pthread's priorities.
-#if defined (ACE_THR_PRI_FIFO_DEF)
- priority = ACE_THR_PRI_FIFO_DEF;
-#else
- priority = ACE_DEFAULT_THREAD_PRIORITY;
-#endif
-
- if (high_priority_client.activate (THR_BOUND | ACE_SCHED_FIFO,
- 1,
- 0,
- priority) == -1)
-
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "activate failed"));
-
- // @@ Sumedh, can you please document why we need this VxWorks
- // #ifdef? Is there a way to make this more general so we don't
- // need the #ifdef? In other words, please check with David or
- // Brian about this.
-
-#if !defined (VXWORKS)
- priority =
- ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO,
- priority,
- ACE_SCOPE_THREAD);
-#else
- priority = 65;
-#endif /* !defined (VXWORKS) */
-
- ACE_DEBUG ((LM_DEBUG,
- "Creating %d clients with low priority\n",
- ts.thread_count_ - 1));
-
- for (u_int i = 0; i < ts.thread_count_ - 1; i++)
- {
- // The first thread starts at min + 1, since the minimum
- // priority thread is the utilization thread.
-
- // get the next higher priority
- priority = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO,
- priority,
- ACE_SCOPE_THREAD);
- if (low_priority_client.activate (THR_BOUND,
- 1,
- 1,
- priority) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "activate failed"));
- }
- // Wait for all the threads to exit.
- ACE_Thread_Manager::instance ()->wait ();
-
-#if defined (VXWORKS)
- ACE_OS::printf ("Test done.\n"
- "High priority client latency : %d usec\n"
- "Low priority client latency : %d usec\n",
- high_priority_client.get_high_priority_latency (),
- low_priority_client.get_low_priority_latency ());
-#else /* !defined (VXWORKS) */
- ACE_DEBUG ((LM_DEBUG, "Test done.\n"
- "High priority client latency : %f msec, jitter: %f msec\n"
- "Low priority client latency : %f msec, jitter: %f msec\n",
- high_priority_client.get_high_priority_latency (),
- high_priority_client.get_high_priority_jitter (),
- low_priority_client.get_low_priority_latency (),
- low_priority_client.get_low_priority_jitter ()));
-#endif /* !defined (VXWORKS) */
- util_thread.done_ = 1;
- thr_mgr.wait ();
- ACE_DEBUG ((LM_DEBUG, "utilization task performed %g computations\n",
- util_thread.get_number_of_computations ()));
- return 0;
-}
-
-int
-do_thread_per_rate_test (Task_State &ts)
-{
- // First activate the high priority client.
- Client CB_40Hz_client (&ts);
- Client CB_20Hz_client (&ts);
- Client CB_10Hz_client (&ts);
- Client CB_5Hz_client (&ts);
- Client CB_1Hz_client (&ts);
-
- ACE_Sched_Priority priority =
- ACE_Sched_Params::priority_max (ACE_SCHED_FIFO,
- ACE_SCOPE_THREAD);
-
- // VxWorks priority of 0 causes problems.
- priority = 10;
- ACE_DEBUG ((LM_DEBUG, "Creating 40 Hz client with priority %d\n", priority));
- if (CB_40Hz_client.activate (THR_BOUND, 1, 0, priority++) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "activate failed"));
-
- ACE_DEBUG ((LM_DEBUG, "Creating 20 Hz client with priority %d\n", priority));
- if (CB_20Hz_client.activate (THR_BOUND, 1, 0, priority++) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "activate failed"));
-
- ACE_DEBUG ((LM_DEBUG, "Creating 10 Hz client with priority %d\n", priority));
- if (CB_10Hz_client.activate (THR_BOUND, 1, 0, priority++) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "activate failed"));
-
- ACE_DEBUG ((LM_DEBUG, "Creating 5 Hz client with priority %d\n", priority));
- if (CB_5Hz_client.activate (THR_BOUND, 1, 0, priority++) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "activate failed"));
-
- ACE_DEBUG ((LM_DEBUG, "Creating 1 Hz client with priority %d\n", priority));
- if (CB_1Hz_client.activate (THR_BOUND, 1, 0, priority++) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "activate failed"));
-
- // Wait for all the threads to exit.
- ACE_Thread_Manager::instance ()->wait ();
-
- ACE_OS::printf ("Test done.\n"
- "40Hz client latency : %d usec\n"
- "20Hz client latency : %d usec\n"
- "10Hz client latency : %d usec\n"
- "5Hz client latency : %d usec\n"
- "1Hz client latency : %d usec\n",
- CB_40Hz_client.get_latency (0),
- CB_20Hz_client.get_latency (1),
- CB_10Hz_client.get_latency (2),
- CB_5Hz_client.get_latency (3),
- CB_1Hz_client.get_latency (4));
- return 0;
-}
-
-// This is the main routine of the client, where we create a high
-// priority and a low priority client. we then activate the clients
-// with the appropriate priority threads, and wait for them to
-// finish. After they aer done, we compute the latency and jitter
-// metrics and print them.
-
-int
-main (int argc, char *argv [])
-{
-#if defined (ACE_HAS_THREADS)
-
-#if defined (FORCE_ARGS)
- int argc = 7;
- char *argv[] = {"main",
- "-d",
- "3", // Data Type
- "-t",
- "10", // Thread Count
- "-h",
- "mv2604d"}; // Host name
-#endif /* defined (FORCE_ARGS) */
-
- initialize ();
-
- Task_State ts (argc, argv);
- if (ts.thread_per_rate_ == 0)
- do_priority_inversion_test (ts);
- else
- do_thread_per_rate_test (ts);
-#else
- ACE_DEBUG ((LM_DEBUG, "Test not run. This platform doesn't seem to have threads.\n"));
-#endif /* ACE_HAS_THREADS */
-
- return 0;
-}