X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a9af1b0795c4a75f8919d7a87491fe7ab041b272..40b970377c0a908b5693daf9a2a5b20b85221483:/src/gras/Transport/transport.c diff --git a/src/gras/Transport/transport.c b/src/gras/Transport/transport.c index aff786ee31..19b6be77de 100644 --- a/src/gras/Transport/transport.c +++ b/src/gras/Transport/transport.c @@ -7,6 +7,11 @@ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ +/*** + *** Options + ***/ +int gras_opt_trp_nomoredata_on_close=0; + #include "xbt/ex.h" #include "xbt/peer.h" #include "portable.h" @@ -345,6 +350,15 @@ void gras_socket_close(gras_socket_t sock) { XBT_IN; VERB1("Close %p",sock); + if (sock == _gras_lastly_selected_socket) { + xbt_assert0(!gras_opt_trp_nomoredata_on_close || !sock->moredata, + "Closing a socket having more data in buffer while the nomoredata_on_close option is activated"); + + if (sock->moredata) + CRITICAL0("Closing a socket having more data in buffer. Option nomoredata_on_close disabled, so continuing."); + _gras_lastly_selected_socket=NULL; + } + /* FIXME: Issue an event when the socket is closed */ if (sock) { xbt_dynar_foreach(sockets,cursor,sock_iter) {