1
1
openmpi/orte/mca/notifier/hnp/notifier_hnp_recv.c
Ralph Castain bd8b4f7f1e Sorry for mid-day commit, but I had promised on the call to do this upon my return.
Roll in the ORTE state machine. Remove last traces of opal_sos. Remove UTK epoch code.

Please see the various emails about the state machine change for details. I'll send something out later with more info on the new arch.

This commit was SVN r26242.
2012-04-06 14:23:13 +00:00

77 строки
2.3 KiB
C

/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
* Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2011-2012 Los Alamos National Security, LLC. All rights
* reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "orte_config.h"
#include "orte/constants.h"
#include "orte/runtime/orte_globals.h"
#include "orte/mca/notifier/base/base.h"
#include "orte/mca/errmgr/errmgr.h"
#include "orte/util/show_help.h"
#include "opal/class/opal_hash_table.h"
#include "notifier_hnp.h"
void orte_notifier_hnp_recv_cb(int status, orte_process_name_t* sender,
opal_buffer_t* buffer, orte_rml_tag_t tag,
void* cbdata)
{
uint8_t u8;
uint32_t u32;
int rc, count;
orte_notifier_base_severity_t severity;
int errcode;
char *msg;
/* Unpack the severity */
count = 1;
if (ORTE_SUCCESS !=
(rc = opal_dss.unpack(buffer, &u8, &count, OPAL_UINT8))) {
ORTE_ERROR_LOG(rc);
goto CLEAN_RETURN;
}
severity = (orte_notifier_base_severity_t) u8;
/* Unpack the errcode */
count = 1;
if (ORTE_SUCCESS !=
(rc = opal_dss.unpack(buffer, &u32, &count, OPAL_UINT32))) {
ORTE_ERROR_LOG(rc);
goto CLEAN_RETURN;
}
errcode = (int) u32;
/* Unpack the string */
count = 1;
if (ORTE_SUCCESS !=
(rc = opal_dss.unpack(buffer, &msg, &count, OPAL_STRING))) {
ORTE_ERROR_LOG(rc);
goto CLEAN_RETURN;
}
orte_show_help("orte_notifier_hnp.txt", "notifier message", false, msg);
CLEAN_RETURN:
return;
}