1
1

Need to pass identification of input/output channels

This commit was SVN r24783.
Этот коммит содержится в:
Ralph Castain 2011-06-17 14:48:59 +00:00
родитель 09d89242d6
Коммит 61dd7f4588
2 изменённых файлов: 16 добавлений и 2 удалений

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

@ -58,6 +58,10 @@ typedef uint32_t orte_rmcast_channel_t;
#define ORTE_RMCAST_RECV 0x02
#define ORTE_RMCAST_BIDIR 0x03
/* define channel flags */
#define ORTE_RMCAST_MY_INPUT 0x10
#define ORTE_RMCAST_MY_OUTPUT 0x20
/* Message matching tag */
typedef int32_t orte_rmcast_tag_t;
#define ORTE_RMCAST_TAG_T OPAL_INT32

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

@ -722,6 +722,16 @@ static int open_channel(orte_rmcast_channel_t channel, char *name,
opal_list_append(&orte_rmcast_base.channels, &chan->item);
ORTE_RELEASE_THREAD(&orte_rmcast_base.main_ctl);
/* if this is my input, set that value */
if (ORTE_RMCAST_MY_INPUT & direction) {
orte_rmcast_base.my_input_channel = chan;
}
/* if this is my output, set that value */
if (ORTE_RMCAST_MY_OUTPUT & direction) {
orte_rmcast_base.my_output_channel = chan;
}
OPAL_OUTPUT_VERBOSE((2, orte_rmcast_base.rmcast_output,
"%s rmcast:udp opening new channel %s:%s network %03d.%03d.%03d.%03d port %d for%s%s",
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
@ -809,7 +819,7 @@ static int setup_channel(rmcast_base_channel_t *chan, uint8_t direction)
(ORTE_RMCAST_RECV & direction) ? " RECV" : " ",
(ORTE_RMCAST_XMIT & direction) ? " XMIT" : " "));
if (0 > chan->xmit && ORTE_RMCAST_XMIT & direction) {
if (0 > chan->xmit && (ORTE_RMCAST_XMIT & direction)) {
/* create a xmit socket */
if (ORTE_SUCCESS != (rc = setup_socket(&xmitsd, chan, false))) {
ORTE_ERROR_LOG(rc);
@ -818,7 +828,7 @@ static int setup_channel(rmcast_base_channel_t *chan, uint8_t direction)
chan->xmit = xmitsd;
}
if (0 > chan->recv && ORTE_RMCAST_RECV & direction) {
if (0 > chan->recv && (ORTE_RMCAST_RECV & direction)) {
/* create a recv socket */
if (ORTE_SUCCESS != (rc = setup_socket(&recvsd, chan, true))) {
ORTE_ERROR_LOG(rc);