Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Unregister failed sockets from the big socket dynar
[simgrid.git] / src / gras / Transport / transport.c
index 7dc7785..69ff90e 100644 (file)
@@ -214,6 +214,13 @@ gras_socket_server_ext(unsigned short port,
           sock->outgoing?'y':'n',
           sock->accepting?'y':'n');
   } CATCH(e) {
+    int cursor;
+    gras_socket_t sock_iter;
+    xbt_dynar_t socks = ((gras_trp_procdata_t) gras_libdata_by_id(gras_trp_libdata_id))->sockets;
+    xbt_dynar_foreach(socks, cursor, sock_iter) {
+       if (sock_iter==sock) 
+        xbt_dynar_cursor_rm(socks,&cursor);
+    }     
     free(sock);
     RETHROW;
   }