void main(void) { setup_board(); setup_scheduler(); // adding task to the scheduler SCH_add_task(&Read_T, 0, 100); SCH_add_task(&check_buttons, 50, 500); SCH_add_task(&LED_result, 100, 50); start_50ms_timer(); //supper loop while(1) { SCH_Dispatcher_Tasks(); } }
/** Read input, print usage message when given fewer than four arguments. Otherwise setup scheduler. */ int main(int argc, char* argv[]){ if (argc < 5){ printf("discksched: missing arguments\n\nusage: ./disk <input_file> <scheduling_algorithm> <sector-to-sector_seek_time> <end-to-end_seek_time>\n\n"); printf("Supported schedulers:\n\n"); printf(" 1) FCFS \n"); printf(" 2) SSTN \n"); printf(" 3) SCAN \n"); printf(" 4) C-SCAN \n\n"); } else if (argc == 5) { const char* input_file = (const char*)argv[1]; const char* algorithm = (const char*)argv[2]; int sec_to_sec_seek = atoi((const char*)argv[3]); int end_to_end_seek = atoi((const char*)argv[4]); setup_scheduler(input_file, algorithm, sec_to_sec_seek, end_to_end_seek); } else { fprintf(stderr, "error: too many arguments to disksched.\n"); } return 0; }
int FT_EventService::run(int argc, ACE_TCHAR* argv[]) { try { // Initialize ORB. orb_ = CORBA::ORB_init (argc, argv); if (this->parse_args (argc, argv) == -1) return 1; CORBA::Object_var root_poa_object = orb_->resolve_initial_references("RootPOA"); if (CORBA::is_nil (root_poa_object.in ())) ORBSVCS_ERROR_RETURN ((LM_ERROR, " (%P|%t) Unable to initialize the root POA.\n"), 1); PortableServer::POA_var root_poa = PortableServer::POA::_narrow (root_poa_object.in ()); PortableServer::POAManager_var poa_manager = root_poa->the_POAManager (); poa_manager->activate (); CORBA::Object_var naming_obj = orb_->resolve_initial_references ("NameService"); if (CORBA::is_nil (naming_obj.in ())) ORBSVCS_ERROR_RETURN ((LM_ERROR, " (%P|%t) Unable to initialize the Naming Service.\n"), 1); CosNaming::NamingContext_var naming_context = CosNaming::NamingContext::_narrow (naming_obj.in ()); setup_scheduler(naming_context.in()); poa_manager->activate(); // Activate the Event channel implementation TAO_FTEC_Event_Channel ec(orb_, root_poa); FtRtecEventChannelAdmin::EventChannel_var ec_ior = ec.activate(membership_); if (report_factory(orb_.in(), ec_ior.in() )==-1) return -1; orb_->run(); } catch (const CORBA::Exception& ex) { ex._tao_print_exception ("A CORBA Exception occurred."); return -1; } ACE_Thread_Manager::instance()->wait(); return 0; }