Merge pull request #689 from rhc54/topic/dvm
There is no reason for tools to have an async progress thread
Этот коммит содержится в:
Коммит
2c2945eaac
@ -77,18 +77,6 @@ int orte_ess_base_tool_setup(void)
|
||||
orte_process_info.super.proc_arch = opal_local_arch;
|
||||
opal_proc_local_set(&orte_process_info.super);
|
||||
|
||||
if (NULL != orte_process_info.my_hnp_uri) {
|
||||
/* if we were given an HNP, then we want
|
||||
* to look like an application as well as being a tool.
|
||||
* Need to do this before opening the routed framework
|
||||
* so it will do the right things.
|
||||
*/
|
||||
orte_process_info.proc_type |= ORTE_PROC_NON_MPI;
|
||||
/* get a separate orte event base */
|
||||
orte_event_base = opal_start_progress_thread("orte", true);
|
||||
progress_thread_running = true;
|
||||
orte_event_base_active = true;
|
||||
}
|
||||
/* open and setup the state machine */
|
||||
if (ORTE_SUCCESS != (ret = mca_base_framework_open(&orte_state_base_framework, 0))) {
|
||||
ORTE_ERROR_LOG(ret);
|
||||
|
@ -318,7 +318,7 @@ static opal_cmd_line_init_t cmd_line_init[] = {
|
||||
&myglobals.run_as_root, OPAL_CMD_LINE_TYPE_BOOL,
|
||||
"Allow execution as root (STRONGLY DISCOURAGED)" },
|
||||
|
||||
/* End of list */
|
||||
/* End of list */
|
||||
{ NULL, '\0', NULL, NULL, 0,
|
||||
NULL, OPAL_CMD_LINE_TYPE_NULL, NULL }
|
||||
};
|
||||
@ -409,8 +409,8 @@ int main(int argc, char *argv[])
|
||||
fprintf(stderr, "--------------------------------------------------------------------------\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
/*
|
||||
* Since this process can now handle MCA/GMCA parameters, make sure to
|
||||
* process them.
|
||||
*/
|
||||
@ -435,6 +435,32 @@ int main(int argc, char *argv[])
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* Check for help request */
|
||||
if (myglobals.help) {
|
||||
char *str, *args = NULL;
|
||||
char *project_name = NULL;
|
||||
opal_output(0, "GETTING HELP");
|
||||
if (0 == strcmp(myglobals.basename, "mpirun")) {
|
||||
project_name = "Open MPI";
|
||||
} else {
|
||||
project_name = "OpenRTE";
|
||||
}
|
||||
args = opal_cmd_line_get_usage_msg(&cmd_line);
|
||||
opal_output(0, "CMD LINE %s", args);
|
||||
str = opal_show_help_string("help-orterun.txt", "orterun:usage", false,
|
||||
myglobals.basename, project_name, OPAL_VERSION,
|
||||
myglobals.basename, args,
|
||||
PACKAGE_BUGREPORT);
|
||||
if (NULL != str) {
|
||||
printf("%s", str);
|
||||
free(str);
|
||||
}
|
||||
free(args);
|
||||
|
||||
/* If someone asks for help, that should be all we do */
|
||||
exit(0);
|
||||
}
|
||||
|
||||
/* Check for some "global" command line params */
|
||||
parse_globals(argc, argv, &cmd_line);
|
||||
|
||||
@ -691,12 +717,16 @@ int main(int argc, char *argv[])
|
||||
orte_rml.send_buffer_nb(ORTE_PROC_MY_HNP, req, ORTE_RML_TAG_DAEMON, orte_rml_send_callback, NULL);
|
||||
|
||||
// wait for response and unpack the status, jobid
|
||||
ORTE_WAIT_FOR_COMPLETION(myspawn);
|
||||
while (myspawn) {
|
||||
opal_event_loop(orte_event_base, OPAL_EVLOOP_ONCE);
|
||||
}
|
||||
opal_output(0, "Job %s has launched", ORTE_JOBID_PRINT(jdata->jobid));
|
||||
|
||||
waiting:
|
||||
ORTE_WAIT_FOR_COMPLETION(mywait);
|
||||
|
||||
while (mywait) {
|
||||
opal_event_loop(orte_event_base, OPAL_EVLOOP_ONCE);
|
||||
}
|
||||
|
||||
DONE:
|
||||
/* cleanup and leave */
|
||||
orte_finalize();
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user