mirror of
https://github.com/nasa/trick.git
synced 2024-12-24 23:36:43 +00:00
39 lines
1.2 KiB
C++
39 lines
1.2 KiB
C++
|
|
#include <iostream>
|
|
#include <sys/resource.h>
|
|
#include "trick/Executive.hh"
|
|
#include "trick/ExecutiveException.hh"
|
|
#include "trick/clock_proto.h"
|
|
|
|
/**
|
|
@details
|
|
-# Call the initialization jobs.
|
|
-# The scheduler will immediately return if the initialization job returns a
|
|
non-zero return code. The return code of the initialization job will be
|
|
returned from Trick::Executive::init().
|
|
-# If no execption is thrown return 0
|
|
*/
|
|
int Trick::Executive::call_initialization() {
|
|
|
|
int ret = 0 ;
|
|
|
|
except_file = "in intialization queue" ;
|
|
|
|
/* Call the initialization jobs. */
|
|
initialization_queue.reset_curr_index() ;
|
|
while ( (curr_job = initialization_queue.get_next_job()) != NULL ) {
|
|
long long start = clock_wall_time();
|
|
ret = curr_job->call() ;
|
|
long long end = clock_wall_time();
|
|
if(init_log_stream.is_open()) {
|
|
init_log_stream << "init," << curr_job->name << ',' << (double)(end-start)/clock_tics_per_sec() << '\n';
|
|
}
|
|
if ( ret != 0 ) {
|
|
throw Trick::ExecutiveException(ret , curr_job->name.c_str() , 0 , "initialization job did not return 0") ;
|
|
}
|
|
}
|
|
|
|
/* return 0 if there are no errors. */
|
|
return ret ;
|
|
}
|