1
1

A temporary workaround to avoid segfaults when the tcp oob is cleaning up.

This simply removes the event handler deletions from the clean up code.

This commit was SVN r1929.
Этот коммит содержится в:
Tim Prins 2004-08-06 19:12:26 +00:00
родитель c592935f89
Коммит 259b2d9c35
2 изменённых файлов: 11 добавлений и 2 удалений

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

@ -315,7 +315,9 @@ int mca_oob_tcp_finalize(void)
"mca_oob_tcp_finalize: setsockopt(SO_REUSEADDR) failed with errno=%d\n",
errno);
}
ompi_event_del(&mca_oob_tcp_component.tcp_recv_event);
/*** temporarily disable the removal of the revieve event
* to prevent segfaults
* ompi_event_del(&mca_oob_tcp_component.tcp_recv_event); */
if(0 != close(mca_oob_tcp_component.tcp_listen_sd)) {
ompi_output(0, "mca_oob_tcp_finalize: error closing listen socket. errno=%d", errno);
}

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

@ -55,7 +55,14 @@ static void mca_oob_tcp_peer_construct(mca_oob_tcp_peer_t* peer)
*/
static void mca_oob_tcp_peer_destruct(mca_oob_tcp_peer_t * peer)
{
mca_oob_tcp_peer_close(peer);
/* temporarily not delete the events to prevent segfaults
* mca_oob_tcp_peer_close(peer); */
if(peer->peer_state != MCA_OOB_TCP_CLOSED &&
peer->peer_sd >= 0) {
ompi_event_del(&peer->peer_send_event);
close(peer->peer_sd);
peer->peer_sd = -1;
}
OBJ_DESTRUCT(&(peer->peer_send_queue));
OBJ_DESTRUCT(&(peer->peer_lock));
}