#include "trick/Executive.hh" /* -# Switch on the type of thread -# Scheduled threads are always ready to run -# AMF thredas are ready to run if their previous frame just finished -# ASYNC threads are ready to run if their complete flag is set and either they have no cycle time or their previous frame just finished. */ bool Trick::Executive::isThreadReadyToRun( Trick::Threads * curr_thread , long long time_ticks) { bool ret = false ; if ( curr_thread->enabled ) { switch ( curr_thread->process_type ) { case Trick::PROCESS_TYPE_SCHEDULED: ret = true ; break ; case Trick::PROCESS_TYPE_AMF_CHILD: if ( curr_thread->amf_next_tics == time_ticks ) { ret = true ; } break ; case Trick::PROCESS_TYPE_ASYNC_CHILD: if ( curr_thread->child_complete == true ) { if (curr_thread->amf_cycle_tics == 0 ) { ret = true ; } else { if ( curr_thread->amf_next_tics == time_ticks ) { ret = true ; } } } break ; } } return ret ; }