1
1
This commit was SVN r5305.
Этот коммит содержится в:
Tim Woodall 2005-04-13 15:24:14 +00:00
родитель 4c67d136d8
Коммит d1327e616f
2 изменённых файлов: 49 добавлений и 48 удалений

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

@ -100,18 +100,6 @@ static int orte_rmgr_urm_query(void)
ORTE_ERROR_LOG(rc); ORTE_ERROR_LOG(rc);
return rc; return rc;
} }
/* Post non-blocking receive */
if (ORTE_SUCCESS != (rc = orte_rml.recv_buffer_nb(
ORTE_RML_NAME_ANY,
ORTE_RML_TAG_RMGR_SVC,
0,
orte_rmgr_urm_recv,
NULL))) {
ORTE_ERROR_LOG(rc);
return rc;
}
return ORTE_SUCCESS; return ORTE_SUCCESS;
} }
@ -325,39 +313,3 @@ static int orte_rmgr_urm_finalize(void)
return ORTE_SUCCESS; return ORTE_SUCCESS;
} }
static void orte_rmgr_urm_recv(
int status,
orte_process_name_t* peer,
orte_buffer_t* req,
orte_rml_tag_t tag,
void* cbdata)
{
int rc;
orte_buffer_t rsp;
OBJ_CONSTRUCT(&rsp, orte_buffer_t);
if (ORTE_SUCCESS != (rc = orte_rmgr_base_cmd_dispatch(req,&rsp))) {
ORTE_ERROR_LOG(rc);
goto cleanup;
}
rc = orte_rml.send_buffer(peer, &rsp, ORTE_RML_TAG_RMGR_CLNT, 0);
if (rc < 0) {
ORTE_ERROR_LOG(rc);
goto cleanup;
}
cleanup:
rc = orte_rml.recv_buffer_nb(
ORTE_RML_NAME_ANY,
ORTE_RML_TAG_RMGR_SVC,
0,
orte_rmgr_urm_recv,
NULL);
if(rc < 0) {
ORTE_ERROR_LOG(rc);
}
OBJ_DESTRUCT(&rsp);
}

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

@ -27,6 +27,7 @@
#include "mca/rmaps/base/base.h" #include "mca/rmaps/base/base.h"
#include "mca/pls/base/base.h" #include "mca/pls/base/base.h"
#include "mca/rmgr/base/base.h" #include "mca/rmgr/base/base.h"
#include "mca/rml/rml.h"
#include "rmgr_urm.h" #include "rmgr_urm.h"
/* /*
@ -111,6 +112,42 @@ static int orte_rmgr_urm_open(void)
} }
static void orte_rmgr_urm_recv(
int status,
orte_process_name_t* peer,
orte_buffer_t* req,
orte_rml_tag_t tag,
void* cbdata)
{
int rc;
orte_buffer_t rsp;
OBJ_CONSTRUCT(&rsp, orte_buffer_t);
if (ORTE_SUCCESS != (rc = orte_rmgr_base_cmd_dispatch(req,&rsp))) {
ORTE_ERROR_LOG(rc);
goto cleanup;
}
rc = orte_rml.send_buffer(peer, &rsp, ORTE_RML_TAG_RMGR_CLNT, 0);
if (rc < 0) {
ORTE_ERROR_LOG(rc);
goto cleanup;
}
cleanup:
rc = orte_rml.recv_buffer_nb(
ORTE_RML_NAME_ANY,
ORTE_RML_TAG_RMGR_SVC,
0,
orte_rmgr_urm_recv,
NULL);
if(rc < 0) {
ORTE_ERROR_LOG(rc);
}
OBJ_DESTRUCT(&rsp);
}
static orte_rmgr_base_module_t *orte_rmgr_urm_init(int* priority) static orte_rmgr_base_module_t *orte_rmgr_urm_init(int* priority)
{ {
@ -162,6 +199,18 @@ static orte_rmgr_base_module_t *orte_rmgr_urm_init(int* priority)
return NULL; return NULL;
} }
/* Post non-blocking receive */
if (0 > (rc = orte_rml.recv_buffer_nb(
ORTE_RML_NAME_ANY,
ORTE_RML_TAG_RMGR_SVC,
0,
orte_rmgr_urm_recv,
NULL))) {
ORTE_ERROR_LOG(rc);
return NULL;
}
*priority = 100; *priority = 100;
return &orte_rmgr_urm_module; return &orte_rmgr_urm_module;
} }