static void orte_iof_hnp_exception_handler(const orte_process_name_t* peer, orte_rml_exception_t reason) { #if 0 orte_iof_base_endpoint_t *endpoint; opal_output_verbose(1, orte_iof_base.iof_output, "iof svc exception handler! %s\n", ORTE_NAME_PRINT((orte_process_name_t*)peer)); /* If we detect an exception on the RML connection to a peer, delete all of its subscriptions and publications. Note that exceptions can be detected during a normal RML shutdown; they are recoverable events (no need to abort). */ orte_iof_hnp_sub_delete_all(peer); orte_iof_hnp_pub_delete_all(peer); opal_output_verbose(1, orte_iof_base.iof_output, "deleted all pubs and subs\n"); /* Find any streams on any endpoints for this peer and close them */ while (NULL != (endpoint = orte_iof_base_endpoint_match(peer, ORTE_NS_CMP_ALL, ORTE_IOF_ANY))) { orte_iof_base_endpoint_closed(endpoint); /* Delete the endpoint that we just matched */ orte_iof_base_endpoint_delete(peer, ORTE_NS_CMP_ALL, ORTE_IOF_ANY); } #endif opal_output_verbose(1, orte_iof_base.iof_output, "done with exception handler\n"); }
static void orte_iof_proxy_svc_ack( const orte_process_name_t* origin, orte_iof_base_msg_header_t* msg) { orte_iof_base_endpoint_t* endpoint; /* Look for the endpoint corresponding to the tag in the ACK. If we don't find the endpoint, this means that we have already unpublished the endpoint and this ACK must have already been enroute to us when we unpublished. So just discard it. */ endpoint = orte_iof_base_endpoint_match(&msg->msg_origin, ORTE_NS_CMP_ALL, msg->msg_tag); if(endpoint != NULL) { orte_iof_base_endpoint_ack(endpoint,msg->msg_seq + msg->msg_len); /* RELEASE the endpoint because endpoint_match() RETAINed it */ OBJ_RELEASE(endpoint); } }
static void orte_iof_proxy_svc_msg( const orte_process_name_t* origin, orte_iof_base_msg_header_t* msg, unsigned char* data) { orte_iof_base_endpoint_t* endpoint; /* Look for the endpoint corresponding to the tag in the message. If we don't find the endpoint, this means that we have already unpublished the endpoint and this message must have already been enroute to us when we unpublished. So just discard it. */ endpoint = orte_iof_base_endpoint_match(ORTE_NAME_WILDCARD, ORTE_NS_CMP_NONE, msg->msg_tag); if (NULL != endpoint) { orte_iof_base_endpoint_forward(endpoint,origin,msg,data); /* RELEASE the endpoint because endpoint_match() RETAINed it */ OBJ_RELEASE(endpoint); } }