Set the modex as active before starting it. This resolves a hang in
MPI_Init() on comm-spawned processes. cmr=v1.7.4:reviewer=rhc This commit was SVN r29652.
Этот коммит содержится в:
родитель
ab796052b4
Коммит
b5ce72cc15
@ -508,11 +508,10 @@ static int connect_accept(ompi_communicator_t *comm, int root,
|
|||||||
/* setup the modex */
|
/* setup the modex */
|
||||||
OBJ_CONSTRUCT(&modex, orte_grpcomm_collective_t);
|
OBJ_CONSTRUCT(&modex, orte_grpcomm_collective_t);
|
||||||
modex.id = id;
|
modex.id = id;
|
||||||
|
modex.active = true;
|
||||||
|
|
||||||
/* copy across the list of participants */
|
/* copy across the list of participants */
|
||||||
for (item = opal_list_get_first(&all_procs);
|
OPAL_LIST_FOREACH(nm, &all_procs, orte_namelist_t) {
|
||||||
item != opal_list_get_end(&all_procs);
|
|
||||||
item = opal_list_get_next(item)) {
|
|
||||||
nm = (orte_namelist_t*)item;
|
|
||||||
name = OBJ_NEW(orte_namelist_t);
|
name = OBJ_NEW(orte_namelist_t);
|
||||||
name->name = nm->name;
|
name->name = nm->name;
|
||||||
opal_list_append(&modex.participants, &name->super);
|
opal_list_append(&modex.participants, &name->super);
|
||||||
@ -523,7 +522,6 @@ static int connect_accept(ompi_communicator_t *comm, int root,
|
|||||||
ORTE_ERROR_LOG(rc);
|
ORTE_ERROR_LOG(rc);
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
modex.active = true;
|
|
||||||
OMPI_WAIT_FOR_COMPLETION(modex.active);
|
OMPI_WAIT_FOR_COMPLETION(modex.active);
|
||||||
OBJ_DESTRUCT(&modex);
|
OBJ_DESTRUCT(&modex);
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user