mirror of
https://github.com/nasa/trick.git
synced 2024-12-21 06:03:10 +00:00
19025d77ad
Reorganized. Created a new top level include directory that will hold all of Trick's header files. Moved all of the Trick headers to this directory. Created a libexec directory that holds all of the executables that users don't need to execute directly. Changed all of the executables remaining in bin to start with "trick-". In the sim_services directories changed all source files to find the Trick headers in their new location. Since all of the include files are gone in sim_services, removed the src directories as well, moving all of the source files up a level. Moved the makefiles, docs, man, and other architecture independent files into a top level share directory. Renamed lib_${TRICK_HOST_CPU} to lib64 or lib depending on the platform we're currently on. refs #63
38 lines
1.1 KiB
C++
38 lines
1.1 KiB
C++
|
|
#include "trick/MonteCarlo.hh"
|
|
|
|
/** @par Detailed Design: */
|
|
void Trick::MonteCarlo::slave_shutdown() {
|
|
/** <ul><li> Kill any active child process executing a run. */
|
|
slave_kill_run();
|
|
/** <li> Run the shutdown jobs and exit. */
|
|
run_queue(&slave_shutdown_queue, "in slave_shutdown queue") ;
|
|
|
|
exit(0);
|
|
}
|
|
|
|
/** @par Detailed Design: */
|
|
void Trick::MonteCarlo::slave_die() {
|
|
/** <ul><li> Kill any active child process executing a run and exit immediately. */
|
|
slave_kill_run();
|
|
exit(1);
|
|
}
|
|
|
|
/** @par Detailed Design: */
|
|
void Trick::MonteCarlo::slave_kill_run() {
|
|
/**
|
|
* The child process, if running, has a group ID equal to the parent's process ID. Sending a kill signal to this ID will
|
|
* signal both the child and the parent, so ignore it in the parent, and restore the current signal handler afterward.
|
|
*/
|
|
struct sigaction ignore, restore;
|
|
ignore.sa_handler = SIG_IGN;
|
|
sigaction(SIGTERM, &ignore, &restore);
|
|
kill(getpid(), SIGTERM);
|
|
sigaction(SIGTERM, &restore, NULL);
|
|
}
|
|
|
|
/** @par Detailed Design: */
|
|
void Trick::MonteSlave::set_S_main_name(std::string name) {
|
|
S_main_name = name;
|
|
}
|