本文整理汇总了C++中ACE_High_Res_Timer::stop方法的典型用法代码示例。如果您正苦于以下问题:C++ ACE_High_Res_Timer::stop方法的具体用法?C++ ACE_High_Res_Timer::stop怎么用?C++ ACE_High_Res_Timer::stop使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ACE_High_Res_Timer
的用法示例。
在下文中一共展示了ACE_High_Res_Timer::stop方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
int
Mutex_Acquire_Release_Test::svc ()
{
#if ACE_DEBUG_CST > 0
ACE_hthread_t thread_id;
ACE_Thread_Manager::instance ()->thr_self (thread_id);
ACE_DEBUG ((LM_DEBUG,
"Mutex_Acquire_Release_Test::svc (), thread ID is %d\n",
thread_id));
#endif /* ACE_DEBUG_CST */
timer_.start ();
for (ACE_UINT32 i = 0; i < iterations_; ++i)
{
// Block on the mutex.
ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, -1);
// Release the mutex so that the low priority thread can
// proceed. The ACE_GUARD_RETURN macro implicity releases the
// mutex.
}
timer_.stop ();
timer_.elapsed_time (elapsed_time_); /* nanoseconds */
#if ACE_DEBUG_CST > 0
ACE_DEBUG ((LM_DEBUG, "Mutex_Acquire_Release_Test::svc, finishing\n"));
#endif /* ACE_DEBUG_CST */
return 0;
}
示例2: seqstrseq_time_test
void seqstrseq_time_test (CORBA::ULong num_seq_loops,
CORBA::ULong num_string_loops,
bool use_long_str)
{
ACE_High_Res_Timer timer;
ACE_hrtime_t time;
CORBA::ULong sss_len;
CORBA::ULong str_len;
Sequence_Str_Sequences seqs;
seqs.seq_str_seq.length(0);
// start timing
timer.start();
for (CORBA::ULong seq_idx = 0; seq_idx < num_seq_loops; ++seq_idx)
{
sss_len = seqs.seq_str_seq.length();
seqs.seq_str_seq.length(sss_len + 1);
Str_Sequences & strs = seqs.seq_str_seq[sss_len];
//strs.first_str.length(0);
for (CORBA::ULong str_idx = 0; str_idx < num_string_loops; ++str_idx)
{
str_len = strs.second_str.length();
strs.second_str.length(str_len + 1);
strs.second_str[str_len] = use_long_str ? long_str : short_str;
}
}
// end timing
timer.stop();
timer.elapsed_time(time);
if (use_csv)
{
ACE_DEBUG((LM_INFO,
ACE_TEXT("2, 0, %u, %u, %s, %Q\n"),
num_string_loops,
num_seq_loops,
use_long_str ? ACE_TEXT("long"): ACE_TEXT("short"),
time ));
}
else
{
ACE_DEBUG((LM_INFO,
ACE_TEXT("Sequence of string seq (%u, %u, %s) = %Q ns\n"),
num_string_loops,
num_seq_loops,
use_long_str ? ACE_TEXT("long"): ACE_TEXT("short"),
time ));
}
}
示例3: svc
int MyTask::svc (void)
{
ACE_hthread_t thr_handle;
ACE_Thread::self (thr_handle);
ACE_DEBUG ((LM_DEBUG, "(%t|%T): task activated\n"));
ACE_ASSERT (dispatcher_ != 0);
(void) dispatcher_->schedule (guid_, qos_);
barrier_.wait ();
long prime_number = 9619899;
ACE_High_Res_Timer timer;
ACE_Time_Value elapsed_time;
ACE_Time_Value seconds_tracker(0,0);
ACE_Time_Value one_second (1,0);
ACE_Time_Value compute_count_down_time (exec_duration_, 0);
ACE_Countdown_Time compute_count_down (&compute_count_down_time);
timer.start ();
while (compute_count_down_time > ACE_Time_Value::zero)
{
ACE::is_prime (prime_number,
2,
prime_number / 2);
compute_count_down.update ();
timer.stop ();
timer.elapsed_time (elapsed_time);
seconds_tracker += elapsed_time;
if (seconds_tracker >= one_second)
{
seconds_tracker.set (0,0);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%t) Currently running guid=%d")
ACE_TEXT (", qos_.importance=%d\n"),
guid_, qos_.importance_));
}
timer.reset ();
timer.start ();
}
dispatcher_->cancel_schedule (this->guid_);
return 0;
}
示例4: allocator
static int
speed_test (ACE_UINT32 loops)
{
double tt = 0.0,
ut = 0.0,
utus = 0.0,
speed = 0.0;
ACE_Time_Value tc;
void *ptr = 0;
ACE_UINT32 i = loops;
size_t n_chunks = 10;
size_t chunk_size = 8;
ACE_DEBUG ((LM_INFO,
ACE_TEXT (" (%t) ACE_Dynamic_Cached_Allocator ")
ACE_TEXT ("speed test...\n")));
DYNAMIC_ALLOCATOR allocator (n_chunks, chunk_size);
ACE_High_Res_Timer timer;
timer.reset ();
timer.start ();
while (i--)
{
ptr = allocator.malloc (chunk_size);
allocator.free (ptr);
}
timer.stop ();
timer.elapsed_time (tc);
ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Iterations : %d\n"), loops));
tt = tc.sec () + tc.usec ()*1.0e-6;
ut = tt/loops;
utus = ut*1.0e6;
speed = loops/tt;
ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Total time : %.6g [s]\n"), tt));
ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Unit time : %.6g [us]\n"), utus));
ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Speed : %.6g [1/s]\n"), speed));
return 0;
}
示例5:
int
Synchronisers::end_synchronization (void)
{
// Hold the lock and increment the global variable to indicate
// number of ready threads
{
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1);
ready_threads ++;
if (ready_threads == (number_of_workers + io_threads))
{
// Reset the ready_threads so that we can wait at the end of
// runs
ready_threads = 0;
// Start the timer
test_timer.stop ();
// Signal all the threads
this->event_.signal ();
if (debug)
{
ACE_DEBUG ((LM_DEBUG,
"(%P|%t) Ended peacefully \n"));
}
// return to do our work;
return 0;
}
// If we are not the last thread, let go off the lock
}
if (debug)
{
ACE_DEBUG ((LM_DEBUG,
"(%P|%t) Going to wait .. \n"));
}
// Wait blisfully till we are woken up
this->event_.wait ();
return 0;
}
示例6:
static
ACE_Time_Value
time_interval (const ACE_Time_Value &interval,
ACE_hrtime_t& nanoseconds,
ACE_hrtime_t& microseconds)
{
ACE_High_Res_Timer timer;
timer.start ();
ACE_OS::sleep (interval);
timer.stop ();
ACE_Time_Value measured;
timer.elapsed_time (measured);
timer.elapsed_time (nanoseconds);
timer.elapsed_microseconds (microseconds);
return measured;
}
示例7: defined
//.........这里部分代码省略.........
{
// make 'em learn...
do_printUsage (ACE::basename (argv_in[0]));
// clean up
// *PORTABILITY*: on Windows, need to fini ACE...
#if defined (ACE_WIN32) || defined (ACE_WIN64)
if (ACE::fini () == -1)
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to ACE::fini(): \"%m\", continuing\n")));
#endif
return EXIT_FAILURE;
} // end IF
// step1bb: validate arguments
if (!Common_File_Tools::isReadable (map_file) ||
!Common_File_Tools::isDirectory (schema_directory))
{
// make 'em learn...
do_printUsage (ACE::basename (argv_in[0]));
// clean up
// *PORTABILITY*: on Windows, need to fini ACE...
#if defined (ACE_WIN32) || defined (ACE_WIN64)
if (ACE::fini () == -1)
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to ACE::fini(): \"%m\", continuing\n")));
#endif
return EXIT_FAILURE;
} // end IF
// step1c: initialize logging and/or tracing
std::string log_file;
if (!Common_Tools::initializeLogging (ACE::basename (argv_in[0]), // program name
log_file, // logfile
false, // log to syslog ?
false, // trace messages ?
trace_information, // debug messages ?
NULL)) // logger
{
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to Common_Tools::initializeLogging(), aborting\n")));
// clean up
// *PORTABILITY*: on Windows, need to fini ACE...
#if defined (ACE_WIN32) || defined (ACE_WIN64)
if (ACE::fini () == -1)
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to ACE::fini(): \"%m\", continuing\n")));
#endif
return EXIT_FAILURE;
} // end IF
// step1d: handle specific program modes
if (print_version_and_exit)
{
do_printVersion (ACE::basename (argv_in[0]));
// clean up
// *PORTABILITY*: on Windows, need to fini ACE...
#if defined (ACE_WIN32) || defined (ACE_WIN64)
if (ACE::fini () == -1)
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to ACE::fini(): \"%m\", continuing\n")));
#endif
return EXIT_SUCCESS;
} // end IF
ACE_High_Res_Timer timer;
timer.start ();
// step2: do actual work
do_work (schema_directory,
debug_scanner,
debug_parser,
map_file);
timer.stop ();
// debug info
std::string working_time_string;
ACE_Time_Value working_time;
timer.elapsed_time (working_time);
RPG_Common_Tools::period2String (working_time,
working_time_string);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("total working time (h:m:s.us): \"%s\"...\n"),
ACE_TEXT (working_time_string.c_str ())));
// *PORTABILITY*: on Windows, need to fini ACE...
#if defined (ACE_WIN32) || defined (ACE_WIN64)
if (ACE::fini () == -1)
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to ACE::fini(): \"%m\", continuing\n")));
#endif
return EXIT_SUCCESS;
}
示例8: compute_count_down_time
CORBA::Long
Simple_Server_i::test_method (CORBA::Long exec_duration)
{
ACE_hthread_t thr_handle;
ACE_Thread::self (thr_handle);
int prio;
int guid;
RTScheduling::Current::IdType_var id = this->current_->id ();
ACE_OS::memcpy (&guid,
id->get_buffer (),
sizeof (id->length ()));
ACE_High_Res_Timer timer;
ACE_Time_Value elapsed_time;
ACE_DEBUG ((LM_DEBUG, "Request in thread %t\n"));
if (ACE_Thread::getprio (thr_handle, prio) == -1)
{
if (errno == ENOTSUP)
{
ACE_DEBUG((LM_DEBUG,
ACE_TEXT ("getprio not supported on this platform\n")));
return 0;
}
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("%p\n"),
ACE_TEXT ("getprio failed")),
-1);
}
ACE_DEBUG ((LM_DEBUG,
"Request in thread %t, prio = %d,"
"exec duration = %u\n", prio, exec_duration));
static CORBA::ULong prime_number = 9619899;
ACE_Time_Value compute_count_down_time (exec_duration, 0);
ACE_Countdown_Time compute_count_down (&compute_count_down_time);
//Applicable only for CV based implementations
//yield every 1 sec
ACE_Time_Value yield_interval (1,0);
ACE_Time_Value yield_count_down_time (yield_interval);
ACE_Countdown_Time yield_count_down (&yield_count_down_time);
timer.start ();
int j=0;
while (compute_count_down_time > ACE_Time_Value::zero)
{
ACE::is_prime (prime_number,
2,
prime_number / 2);
++j;
#ifdef KOKYU_DSRT_LOGGING
if (j%1000 == 0)
{
ACE_DEBUG ((LM_DEBUG,
"(%t|%T) loop # = %d, load = %usec\n", j, exec_duration));
}
#endif
if (j%1000 == 0)
{
ACE_Time_Value run_time = ACE_OS::gettimeofday ();
task_stats_.sample (ACE_UINT32 (run_time.msec ()), guid);
}
compute_count_down.update ();
if (enable_yield_)
{
yield_count_down.update ();
if (yield_count_down_time <= ACE_Time_Value::zero)
{
CORBA::Policy_var sched_param_policy =
current_->scheduling_parameter();
const char * name = 0;
CORBA::Policy_ptr implicit_sched_param = 0;
current_->update_scheduling_segment (name,
sched_param_policy.in (),
implicit_sched_param);
yield_count_down_time = yield_interval;
yield_count_down.start ();
}
}
}
timer.stop ();
timer.elapsed_time (elapsed_time);
ACE_DEBUG ((LM_DEBUG,
"Request processing in thread %t done, "
"prio = %d, load = %d, elapsed time = %umsec\n",
//.........这里部分代码省略.........
示例9: defined
//.........这里部分代码省略.........
configuration.map_size_y = 0;
} // end IF
// step1bb: validate arguments
if ((!random &&
((configuration.num_areas == 0) ||
(configuration.map_size_x == 0) ||
(configuration.map_size_y == 0))) ||
(configuration.max_num_doors_per_room == 1) || // cannot enforce this (yet: *TODO*)
(configuration.corridors &&
!configuration.doors)) // cannot have corridors without doors...
{
ACE_DEBUG((LM_DEBUG,
ACE_TEXT("invalid argument(s), aborting\n")));
// make 'em learn...
do_printUsage(std::string(ACE::basename(argv_in[0])));
// *PORTABILITY*: on Windows, need to fini ACE...
#if defined (ACE_WIN32) || defined (ACE_WIN64)
if (ACE::fini () == -1)
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to ACE::fini(): \"%m\", continuing\n")));
#endif
return EXIT_FAILURE;
} // end IF
// step1c: initialize logging and/or tracing
std::string log_file;
if (!Common_Tools::initializeLogging (ACE::basename (argv_in[0]), // program name
log_file, // logfile
false, // log to syslog ?
false, // trace messages ?
trace_information, // debug messages ?
NULL)) // logger
{
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to Common_Tools::initializeLogging(), aborting\n")));
// *PORTABILITY*: on Windows, need to fini ACE...
#if defined (ACE_WIN32) || defined (ACE_WIN64)
if (ACE::fini () == -1)
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to ACE::fini(): \"%m\", continuing\n")));
#endif
return EXIT_FAILURE;
} // end IF
// step1d: handle specific program modes
if (print_version_and_exit)
{
do_printVersion(std::string(ACE::basename(argv_in[0])));
// *PORTABILITY*: on Windows, need to fini ACE...
#if defined (ACE_WIN32) || defined (ACE_WIN64)
if (ACE::fini () == -1)
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to ACE::fini(): \"%m\", continuing\n")));
#endif
return EXIT_SUCCESS;
} // end IF
ACE_High_Res_Timer timer;
timer.start();
// step2: do actual work
do_work(configuration,
generate_level,
output_file,
dump_result,
random);
timer.stop();
// debug info
std::string working_time_string;
ACE_Time_Value working_time;
timer.elapsed_time(working_time);
RPG_Common_Tools::period2String(working_time,
working_time_string);
ACE_DEBUG((LM_DEBUG,
ACE_TEXT("total working time (h:m:s.us): \"%s\"...\n"),
ACE_TEXT(working_time_string.c_str())));
// *PORTABILITY*: on Windows, fini ACE...
#if defined (ACE_WIN32) || defined (ACE_WIN64)
if (ACE::fini () == -1)
{
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to ACE::fini(): \"%m\", aborting\n")));
return EXIT_FAILURE;
} // end IF
#endif
return EXIT_SUCCESS;
} // end main
示例10: main
int main(int argc, char** argv)
{
char map_magic[16];
int thisBuild = getBuildNumber();
int iCoreNumber = getCoreNumberFromBuild(thisBuild);
showBanner("Movement Map Generator", iCoreNumber);
setMapMagicVersion(iCoreNumber, map_magic);
showWebsiteBanner();
int mapnum = -1;
float maxAngle = 60.0f;
int tileX = -1, tileY = -1;
bool skipLiquid = false,
skipContinents = false,
skipJunkMaps = true,
skipBattlegrounds = false,
debugOutput = false,
silent = false,
bigBaseUnit = false;
int num_threads = 0;
char* offMeshInputPath = NULL;
bool validParam = handleArgs(argc, argv, mapnum,
tileX, tileY, maxAngle,
skipLiquid, skipContinents, skipJunkMaps, skipBattlegrounds,
debugOutput, silent, bigBaseUnit, num_threads, offMeshInputPath);
if (!validParam)
{ return silent ? -1 : finish(" You have specified invalid parameters (use -h for more help)", -1); }
if (mapnum == -1 && debugOutput)
{
if (silent)
{ return -2; }
printf(" You have specifed debug output, but didn't specify a map to generate.\n");
printf(" This will generate debug output for ALL maps.\n");
printf(" Are you sure you want to continue? (y/n) ");
if (getchar() != 'y')
{ return 0; }
}
if (!checkDirectories(debugOutput))
{ return silent ? -3 : finish(" Press any key to close...", -3); }
MapBuilder builder(map_magic, maxAngle, skipLiquid, skipContinents, skipJunkMaps,
skipBattlegrounds, debugOutput, bigBaseUnit, offMeshInputPath);
ACE_Time_Value elapsed;
ACE_High_Res_Timer timer;
timer.start();
if (tileX > -1 && tileY > -1 && mapnum >= 0)
{ builder.buildSingleTile(mapnum, tileX, tileY); }
else
{
if (num_threads && builder.activate(num_threads)== -1)
{
if (!silent)
{ printf(" Thread initialization was not ok. The build is single threaded\n"); }
}
if (builder.activated())
{ printf(" Using %d thread(s) for building\n", num_threads);}
if (mapnum >= 0)
{ builder.buildMap(uint32(mapnum), true); }
else
{ builder.buildAllMaps(); }
}
timer.stop();
timer.elapsed_time(elapsed);
printf(" \n Total build time: %ld seconds\n\n", elapsed.sec());
return silent ? 1 : finish(" Movemap build is complete! Press enter to exit\n", 1);
}
示例11: octetSeq
int
Client::svc (void)
{
try
{
Octet_Seq octetSeq(SIZE_BLOCK);
Char_Seq charSeq(SIZE_BLOCK);
ACE_High_Res_Timer timer;
ACE_OS::printf("Start sending %d Msgs...\n",this->niterations_);
charSeq.length(SIZE_BLOCK);
octetSeq.length(SIZE_BLOCK);
// This sets up the connector, so that we do not incur
// the overhead on the first call in the loop.
server_->sendCharSeq (charSeq);
timer.start ();
ACE_UINT32 client_count = 0;
for (ACE_UINT32 i = 0; i < this->niterations_; ++i)
{
client_count++;
server_->sendCharSeq (charSeq);
//server_->sendOctetSeq (octetSeq);
//ACE_DEBUG ((LM_DEBUG, "."));
}
timer.stop ();
ACE_Time_Value measured;
timer.elapsed_time (measured);
//ACE_DEBUG ((LM_DEBUG, "...finished\n"));
time_t dur = measured.sec () * 1000000 + measured.usec ();
if (dur == 0 || this->niterations_ == 0)
ACE_DEBUG ((LM_DEBUG, "Time not measurable, calculation skipped\n"));
else
{
ACE_DEBUG ((LM_DEBUG,
"Time for %u Msgs: %u usec\n",
this->niterations_,
dur));
ACE_DEBUG ((LM_DEBUG, "Time for 1 Msg: %u usec, %u calls/sec\n",
dur / this->niterations_,
1000000 / (dur / this->niterations_)));
}
for (int c = 0; c < 10; ++c)
server_->shutdown ();
}
catch (const CORBA::Exception& ex)
{
ex._tao_print_exception ("MT_Client: exception raised");
}
return 0;
}
示例12: user_time
//.........这里部分代码省略.........
{
configuration.protocolConfiguration.loginOptions.user.hostname.discriminator =
RPG_Net_Protocol_IRCLoginOptions::User::Hostname::BITMASK;
// *NOTE*: hybrid-7.2.3 seems to have a bug: 4 --> +i
configuration.protocolConfiguration.loginOptions.user.hostname.mode =
IRC_CLIENT_DEF_IRC_USERMODE;
} // end ELSE
configuration.protocolConfiguration.loginOptions.user.servername =
ACE_TEXT_ALWAYS_CHAR (RPG_NET_PROTOCOL_DEF_IRC_SERVERNAME);
configuration.protocolConfiguration.loginOptions.channel =
ACE_TEXT_ALWAYS_CHAR (IRC_CLIENT_DEF_IRC_CHANNEL);
// populate user/realname
Common_Tools::getCurrentUserName (configuration.protocolConfiguration.loginOptions.user.username,
configuration.protocolConfiguration.loginOptions.user.realname);
// step1db: parse config file (if any)
std::string serverHostname = ACE_TEXT_ALWAYS_CHAR(IRC_CLIENT_DEF_SERVER_HOSTNAME);
unsigned short serverPortNumber = IRC_CLIENT_DEF_SERVER_PORT;
if (!configuration_file.empty ())
do_parseConfigurationFile (configuration_file,
configuration.protocolConfiguration.loginOptions,
serverHostname,
serverPortNumber);
ACE_High_Res_Timer timer;
timer.start();
// step2: do actual work
do_work (configuration,
serverHostname,
serverPortNumber,
num_thread_pool_threads);
// clean up
IRC_handler_module.close ();
timer.stop ();
// debug info
std::string working_time_string;
ACE_Time_Value working_time;
timer.elapsed_time (working_time);
Common_Tools::period2String (working_time,
working_time_string);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("total working time (h:m:s.us): \"%s\"...\n"),
ACE_TEXT (working_time_string.c_str ())));
// stop profile timer...
process_profile.stop ();
// only process profile left to do...
ACE_Profile_Timer::ACE_Elapsed_Time elapsed_time;
elapsed_time.real_time = 0.0;
elapsed_time.user_time = 0.0;
elapsed_time.system_time = 0.0;
if (process_profile.elapsed_time (elapsed_time) == -1)
{
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to ACE_Profile_Timer::elapsed_time: \"%m\", aborting\n")));
Common_Tools::finalizeLogging ();
// // *PORTABILITY*: on Windows, fini ACE...
//#if defined (ACE_WIN32) || defined (ACE_WIN64)
// if (ACE::fini () == -1)
// ACE_DEBUG ((LM_ERROR,
// ACE_TEXT ("failed to ACE::fini(): \"%m\", continuing\n")));
//#endif
示例13: defined
//.........这里部分代码省略.........
return EXIT_FAILURE;
} // end IF
// step1c: initialize logging and/or tracing
std::string log_file;
if (!Common_Tools::initializeLogging (ACE::basename (argv_in[0]), // program name
log_file, // logfile
false, // log to syslog ?
false, // trace messages ?
trace_information, // debug messages ?
NULL)) // logger
{
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to RPG_Common_Tools::initLogging(), aborting\n")));
// *PORTABILITY*: on Windows, fini ACE...
#if defined (ACE_WIN32) || defined (ACE_WIN64)
if (ACE::fini () == -1)
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to ACE::fini(): \"%m\", aborting\n")));
#endif
return EXIT_FAILURE;
} // end IF
// step1d: handle specific program modes
if (print_version_and_exit)
{
do_printVersion (ACE::basename (argv_in[0]));
return EXIT_SUCCESS;
} // end IF
// step2: init SDL
if (SDL_Init (SDL_INIT_TIMER |
SDL_INIT_AUDIO |
SDL_INIT_CDROM |
SDL_INIT_NOPARACHUTE) == -1) // "...Prevents SDL from catching fatal signals..."
{
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to SDL_Init(): \"%s\", aborting\n"),
ACE_TEXT (SDL_GetError ())));
// *PORTABILITY*: on Windows, we must fini ACE...
#if defined (ACE_WIN32) || defined (ACE_WIN64)
if (ACE::fini () == -1)
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to ACE::fini(): \"%m\", continuing\n")));
#endif
return EXIT_FAILURE;
} // end IF
// ***** keyboard setup *****
// enable Unicode translation
SDL_EnableUNICODE (1);
// enable key repeat
SDL_EnableKeyRepeat (SDL_DEFAULT_REPEAT_DELAY,
SDL_DEFAULT_REPEAT_INTERVAL);
// // ignore keyboard events
// SDL_EventState(SDL_KEYDOWN, SDL_IGNORE);
// SDL_EventState(SDL_KEYUP, SDL_IGNORE);
// // SDL event filter (filter mouse motion events and the like)
// SDL_SetEventFilter(event_filter_SDL_cb);
// step3: do actual work
ACE_High_Res_Timer timer;
timer.start ();
do_work (dump_dictionary,
sound_directory,
play_random_sounds,
schema_repository,
filename,
validate_XML);
timer.stop ();
// debug info
std::string working_time_string;
ACE_Time_Value working_time;
timer.elapsed_time (working_time);
Common_Tools::period2String (working_time,
working_time_string);
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("total working time (h:m:s.us): \"%s\"...\n"),
ACE_TEXT (working_time_string.c_str ())));
// step4a: fini SDL
SDL_Quit ();
// *PORTABILITY*: on Windows, fini ACE...
#if defined (ACE_WIN32) || defined (ACE_WIN64)
if (ACE::fini () == -1)
{
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to ACE::fini(): \"%m\", aborting\n")));
return EXIT_FAILURE;
} // end IF
#endif
return EXIT_SUCCESS;
} // end main
示例14: run_domain_test
//.........这里部分代码省略.........
TEST_CHECK (! CORBA::is_nil (widened_topic.in ()));
ACE_DEBUG((LM_DEBUG,
ACE_TEXT("(%P|%t) run_domain_test: ")
ACE_TEXT("(! CORBA::is_nil (widened_topic.in ()))")
ACE_TEXT("\n")
));
ACE_ERROR((LM_ERROR,
"We expect to see an error message from delete_participant\n"));
ret = dpf->delete_participant(new_dp.in ());
TEST_CHECK (ret == ::DDS::RETCODE_PRECONDITION_NOT_MET);
ACE_DEBUG((LM_DEBUG,
ACE_TEXT("(%P|%t) run_domain_test: ")
ACE_TEXT("(ret == ::DDS::RETCODE_PRECONDITION_NOT_MET)")
ACE_TEXT("\n")
));
// delete existent topic first time
ret = new_dp->delete_topic(found_topic.in ());
TEST_CHECK (ret == ::DDS::RETCODE_OK);
ACE_DEBUG((LM_DEBUG,
ACE_TEXT("(%P|%t) run_domain_test: ")
ACE_TEXT("(ret == ::DDS::RETCODE_OK)")
ACE_TEXT("\n")
));
// delete existent topic second time
ret = new_dp->delete_topic(new_topic.in ());
TEST_CHECK (ret == ::DDS::RETCODE_OK);
ACE_DEBUG((LM_DEBUG,
ACE_TEXT("(%P|%t) run_domain_test: ")
ACE_TEXT("(ret == ::DDS::RETCODE_OK)")
ACE_TEXT("\n")
));
// an extra delete existent topic
ACE_ERROR((LM_ERROR,
"We expect to see an error message from delete_topic\n"));
ret = new_dp->delete_topic(new_topic.in ());
TEST_CHECK (ret == ::DDS::RETCODE_ERROR);
ACE_DEBUG((LM_DEBUG,
ACE_TEXT("(%P|%t) run_domain_test: ")
ACE_TEXT("(ret == ::DDS::RETCODE_ERROR)")
ACE_TEXT("\n")
));
// Look up the topicdescription after the topic is deleted will
// return nil.
found_topicdescription
= new_dp->lookup_topicdescription(MY_TOPIC);
TEST_CHECK (CORBA::is_nil(found_topicdescription.in ()));
ACE_DEBUG((LM_DEBUG,
ACE_TEXT("(%P|%t) run_domain_test: ")
ACE_TEXT("(CORBA::is_nil(found_topicdescription.in ()))")
ACE_TEXT("\n")
));
// find a non-existent topic - return nil
ACE_High_Res_Timer timer;
ACE_Time_Value elapsedTime(0, 0);
timer.start ();
found_topic = new_dp->find_topic(OTHER_TOPIC, timeout);
timer.stop();
timer.elapsed_time(elapsedTime);
ACE_Time_Value tenMillis (0, 10000);
elapsedTime += tenMillis;
// some systems can be short by up to 10 milliseconds
ACE_DEBUG((LM_DEBUG,
ACE_TEXT("(%P|%t) run_domain_test: ")
ACE_TEXT("(CORBA::is_nil(found_topic.in ()) && elapsedTime.msec() >= find_topic_timeout.msec())")
ACE_TEXT("\n")
));
// delete the existent participant
ret = dpf->delete_participant(new_dp.in ());
TEST_CHECK (ret == ::DDS::RETCODE_OK);
ACE_DEBUG((LM_DEBUG,
ACE_TEXT("(%P|%t) run_domain_test: ")
ACE_TEXT("(ret == ::DDS::RETCODE_OK)")
ACE_TEXT("\n")
));
// lookup the participant after it's deleted - return nil
looked_dp = dpf->lookup_participant(MY_DOMAIN);
TEST_CHECK (CORBA::is_nil(looked_dp.in ()));
ACE_DEBUG((LM_DEBUG,
ACE_TEXT("(%P|%t) run_domain_test: ")
ACE_TEXT("(CORBA::is_nil(looked_dp.in ()))")
ACE_TEXT("\n")
));
return 0;
}
示例15: defined
int
Yield_Test::svc ()
{
#if ACE_DEBUG_CST > 0
ACE_DEBUG ((LM_DEBUG, "Yield_Test::svc (), entering"));
ACE_hthread_t thread_id;
ACE_Thread_Manager::instance ()->thr_self (thread_id);
int priority;
ACE_OS::thr_getprio (thread_id, priority);
ACE_DEBUG ((LM_DEBUG, "; thread ID is %u, priority is %u\n", thread_id,
priority));
#endif /* ACE_DEBUG_CST */
#if defined (VXWORKS)
// Start the timer, if it hasn't already been started.
if (! started_)
{
// Double-check.
ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, -1);
if (! started_)
{
started_ = 1;
timer_.start ();
}
}
#endif /* VXWORKS */
for (ACE_UINT32 i = 0; i < iterations_; ++i)
{
#if ACE_DEBUG_CST > 0
if (i % (iterations_ >= 10 ? iterations_ / 10 : 1) == 0)
{
ACE_DEBUG ((LM_DEBUG, "Yield_Test::svc () [%u], iteration %u\n",
thread_id, i));
}
#endif /* ACE_DEBUG_CST */
ACE_OS::thr_yield ();
}
#if defined (VXWORKS)
// Stop the timer, if it hasn't already been started.
if (! stopped_)
{
// Maybe it would be better to read the clock before grabbing
// the mutex. Then, only apply the clock reading below, instead
// of reading the clock after grabbing the mutex.
// Double-check.
ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, -1);
if (! stopped_)
{
stopped_ = 1;
timer_.stop ();
timer_.elapsed_time (elapsed_time_); /* nanoseconds */
}
}
#else /* ! VXWORKS */
timer_barrier_.wait ();
#endif /* ! VXWORKS */
#if ACE_DEBUG_CST > 0
ACE_DEBUG ((LM_DEBUG, "Yield_Test::svc, finishing\n"));
#endif /* ACE_DEBUG_CST */
return 0;
}