1
1

Merge pull request #689 from rhc54/topic/dvm

There is no reason for tools to have an async progress thread
Этот коммит содержится в:
rhc54 2015-07-05 13:17:50 -05:00
родитель 4694b16256 836f49597d
Коммит 2c2945eaac
2 изменённых файлов: 36 добавлений и 18 удалений

Просмотреть файл

@ -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();