use persistent non-blocking receives
This commit was SVN r7861.
Этот коммит содержится в:
родитель
a9f04c7573
Коммит
4eca6e22bd
@ -127,7 +127,7 @@ orte_iof_proxy_init(int* priority, bool *allow_multi_user_threads, bool *have_hi
|
|||||||
mca_iof_proxy_component.proxy_iov,
|
mca_iof_proxy_component.proxy_iov,
|
||||||
1,
|
1,
|
||||||
ORTE_RML_TAG_IOF_SVC,
|
ORTE_RML_TAG_IOF_SVC,
|
||||||
ORTE_RML_ALLOC,
|
ORTE_RML_ALLOC|ORTE_RML_PERSISTENT,
|
||||||
orte_iof_proxy_svc_recv,
|
orte_iof_proxy_svc_recv,
|
||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
|
@ -202,7 +202,6 @@ void orte_iof_proxy_svc_recv(
|
|||||||
void* cbdata)
|
void* cbdata)
|
||||||
{
|
{
|
||||||
orte_iof_base_header_t* hdr = (orte_iof_base_header_t*)msg->iov_base;
|
orte_iof_base_header_t* hdr = (orte_iof_base_header_t*)msg->iov_base;
|
||||||
int rc;
|
|
||||||
if(NULL == msg->iov_base) {
|
if(NULL == msg->iov_base) {
|
||||||
opal_output(0, "orte_iof_proxy_svc_recv: invalid message\n");
|
opal_output(0, "orte_iof_proxy_svc_recv: invalid message\n");
|
||||||
return;
|
return;
|
||||||
@ -225,20 +224,6 @@ void orte_iof_proxy_svc_recv(
|
|||||||
/* repost receive */
|
/* repost receive */
|
||||||
mca_iof_proxy_component.proxy_iov[0].iov_base = NULL;
|
mca_iof_proxy_component.proxy_iov[0].iov_base = NULL;
|
||||||
mca_iof_proxy_component.proxy_iov[0].iov_len = 0;
|
mca_iof_proxy_component.proxy_iov[0].iov_len = 0;
|
||||||
|
|
||||||
rc = orte_rml.recv_nb(
|
|
||||||
ORTE_RML_NAME_ANY,
|
|
||||||
mca_iof_proxy_component.proxy_iov,
|
|
||||||
1,
|
|
||||||
ORTE_RML_TAG_IOF_SVC,
|
|
||||||
ORTE_RML_ALLOC,
|
|
||||||
orte_iof_proxy_svc_recv,
|
|
||||||
NULL
|
|
||||||
);
|
|
||||||
if(rc < 0) {
|
|
||||||
ORTE_ERROR_LOG(rc);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -166,7 +166,7 @@ orte_iof_svc_init(int* priority, bool *allow_multi_user_threads, bool *have_hidd
|
|||||||
mca_iof_svc_component.svc_iov,
|
mca_iof_svc_component.svc_iov,
|
||||||
1,
|
1,
|
||||||
ORTE_RML_TAG_IOF_SVC,
|
ORTE_RML_TAG_IOF_SVC,
|
||||||
ORTE_RML_ALLOC,
|
ORTE_RML_ALLOC|ORTE_RML_PERSISTENT,
|
||||||
orte_iof_svc_proxy_recv,
|
orte_iof_svc_proxy_recv,
|
||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
|
@ -40,9 +40,7 @@ void orte_iof_svc_proxy_recv(
|
|||||||
orte_rml_tag_t tag,
|
orte_rml_tag_t tag,
|
||||||
void* cbdata)
|
void* cbdata)
|
||||||
{
|
{
|
||||||
int rc;
|
|
||||||
orte_iof_base_header_t* hdr = (orte_iof_base_header_t*)iov[0].iov_base;
|
orte_iof_base_header_t* hdr = (orte_iof_base_header_t*)iov[0].iov_base;
|
||||||
|
|
||||||
if(status < 0) {
|
if(status < 0) {
|
||||||
ORTE_ERROR_LOG(status);
|
ORTE_ERROR_LOG(status);
|
||||||
goto done;
|
goto done;
|
||||||
@ -84,19 +82,6 @@ done:
|
|||||||
|
|
||||||
mca_iof_svc_component.svc_iov[0].iov_base = NULL;
|
mca_iof_svc_component.svc_iov[0].iov_base = NULL;
|
||||||
mca_iof_svc_component.svc_iov[0].iov_len = 0;
|
mca_iof_svc_component.svc_iov[0].iov_len = 0;
|
||||||
|
|
||||||
rc = orte_rml.recv_nb(
|
|
||||||
ORTE_RML_NAME_ANY,
|
|
||||||
mca_iof_svc_component.svc_iov,
|
|
||||||
1,
|
|
||||||
ORTE_RML_TAG_IOF_SVC,
|
|
||||||
ORTE_RML_ALLOC,
|
|
||||||
orte_iof_svc_proxy_recv,
|
|
||||||
NULL
|
|
||||||
);
|
|
||||||
if(rc < 0) {
|
|
||||||
ORTE_ERROR_LOG(rc);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user