Delay opening the listen socket until module init, so that we can have the
seed value have something set to true. Allow selection of the listen type to thread if (and only if) the process is the HNP... This commit was SVN r12105.
Этот коммит содержится в:
родитель
29c91cf2f3
Коммит
fce5130333
@ -241,7 +241,7 @@ int mca_oob_tcp_component_open(void)
|
||||
"event",
|
||||
&listen_type);
|
||||
|
||||
if ((0 == strcmp(listen_type, "event")) || NULL == getenv("I_AM_MPIRUN")) {
|
||||
if (0 == strcmp(listen_type, "event")) {
|
||||
mca_oob_tcp_component.tcp_listen_type = OOB_TCP_EVENT;
|
||||
} else if (0 == strcmp(listen_type, "listen_thread")) {
|
||||
mca_oob_tcp_component.tcp_listen_type = OOB_TCP_LISTEN_THREAD;
|
||||
@ -813,25 +813,6 @@ mca_oob_t* mca_oob_tcp_component_init(int* priority)
|
||||
memset(&mca_oob_tcp_component.tcp_recv_event, 0, sizeof(opal_event_t));
|
||||
memset(&mca_oob_tcp_component.tcp_send_event, 0, sizeof(opal_event_t));
|
||||
|
||||
/* create a listen socket */
|
||||
if (OOB_TCP_EVENT == mca_oob_tcp_component.tcp_listen_type) {
|
||||
if(mca_oob_tcp_create_listen() != ORTE_SUCCESS) {
|
||||
opal_output(0, "mca_oob_tcp_init: unable to create listen socket");
|
||||
return NULL;
|
||||
}
|
||||
} else if (OOB_TCP_LISTEN_THREAD == mca_oob_tcp_component.tcp_listen_type) {
|
||||
if (mca_oob_tcp_create_listen_thread() != ORTE_SUCCESS) {
|
||||
opal_output(0, "mca_oob_tcp_init: unable to create listen thread");
|
||||
return NULL;
|
||||
}
|
||||
opal_free_list_init(&mca_oob_tcp_component.tcp_pending_connections_fl,
|
||||
sizeof(mca_oob_tcp_pending_connection_t),
|
||||
OBJ_CLASS(mca_oob_tcp_pending_connection_t),
|
||||
16, /* initial number */
|
||||
-1, /* maximum number */
|
||||
16); /* increment to grow by */
|
||||
opal_progress_register(mca_oob_tcp_listen_progress);
|
||||
}
|
||||
return &mca_oob_tcp;
|
||||
}
|
||||
|
||||
@ -1061,6 +1042,26 @@ int mca_oob_tcp_init(void)
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* create a listen socket */
|
||||
if (OOB_TCP_EVENT == mca_oob_tcp_component.tcp_listen_type) {
|
||||
if(mca_oob_tcp_create_listen() != ORTE_SUCCESS) {
|
||||
opal_output(0, "mca_oob_tcp_init: unable to create listen socket");
|
||||
return ORTE_ERROR;
|
||||
}
|
||||
} else if ((OOB_TCP_LISTEN_THREAD == mca_oob_tcp_component.tcp_listen_type) && orte_process_info.seed) {
|
||||
if (mca_oob_tcp_create_listen_thread() != ORTE_SUCCESS) {
|
||||
opal_output(0, "mca_oob_tcp_init: unable to create listen thread");
|
||||
return ORTE_ERROR;
|
||||
}
|
||||
opal_free_list_init(&mca_oob_tcp_component.tcp_pending_connections_fl,
|
||||
sizeof(mca_oob_tcp_pending_connection_t),
|
||||
OBJ_CLASS(mca_oob_tcp_pending_connection_t),
|
||||
16, /* initial number */
|
||||
-1, /* maximum number */
|
||||
16); /* increment to grow by */
|
||||
opal_progress_register(mca_oob_tcp_listen_progress);
|
||||
}
|
||||
|
||||
/* iterate through the open connections and send an ident message to all peers -
|
||||
* note that we initially come up w/out knowing our process name - and are assigned
|
||||
* a temporary name by our peer. once we have determined our real name - we send it
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user