For some strange reason, every so often it appears possible for the event library to trip the read event on a socket, yet have the read itself yield an error. If/when that happens, report the error and continue on.
This happens rarely, but it does seem to happen. This commit was SVN r22398.
Этот коммит содержится в:
родитель
774b965784
Коммит
237eb4e8df
@ -976,6 +976,13 @@ static void recv_handler(int sd, short flags, void* cbdata)
|
|||||||
data = (uint8_t*)malloc(mca_rmcast_basic_component.max_msg_size * sizeof(uint8_t));
|
data = (uint8_t*)malloc(mca_rmcast_basic_component.max_msg_size * sizeof(uint8_t));
|
||||||
sz = read(sd, data, mca_rmcast_basic_component.max_msg_size);
|
sz = read(sd, data, mca_rmcast_basic_component.max_msg_size);
|
||||||
|
|
||||||
|
if (sz <= 0) {
|
||||||
|
/* this shouldn't happen - report the errno */
|
||||||
|
opal_output(0, "%s Error on multicast recv socket event: %s(%d)",
|
||||||
|
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), strerror(errno), errno);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
OPAL_OUTPUT_VERBOSE((2, orte_rmcast_base.rmcast_output,
|
OPAL_OUTPUT_VERBOSE((2, orte_rmcast_base.rmcast_output,
|
||||||
"%s rmcast:basic recvd %d bytes from channel %d",
|
"%s rmcast:basic recvd %d bytes from channel %d",
|
||||||
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
|
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user