X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-tcl.git;a=blobdiff_plain;f=dgram%2Fdgram.c;h=08f5f45ace92aea45c11cca8ec7c9204c0a6cf7e;hp=b2661a4fe82611792a359e02fb25a12ee3c713ff;hb=9e72d3c3d91b86842aa947297e0d30bbc741c7b1;hpb=c7fc51a4ad6bb6f01266ed5912b062ae98a653b8 diff --git a/dgram/dgram.c b/dgram/dgram.c index b2661a4..08f5f45 100644 --- a/dgram/dgram.c +++ b/dgram/dgram.c @@ -154,13 +154,12 @@ int do_dgram_socket_on_receive(ClientData cd, Tcl_Interp *ip, int do_dgram_socket_close(ClientData cd, Tcl_Interp *ip, void *sock_v) { DgramSocket *sock= sock_v; - int sockix; + cancel(sock); close(sock->fd); /* nothing useful to be done with errors */ - sockix= sock->ix; + tabledataid_disposing(sock,&dgram_socks); TFREE(sock->addr_buf); TFREE(sock->msg_buf); TFREE(sock); - dgram_socks.a[sockix]= 0; return TCL_OK; }