From: "H.Yamamoto" Date: 2005-01-06T19:21:11+09:00 Subject: [ruby-dev:25419] Re: 1.9.0で使用済みソケットが回収されない? 山本です。 解決できたと思います。 io.c の fptr_finalize で、1.8 で fclose で閉じていたのが 1.9 では close で閉じるように変更されていたので、二つを 比べていて気づきました。 Index: win32.c =================================================================== RCS file: /src/ruby/win32/win32.c,v retrieving revision 1.139 diff -u -w -b -p -r1.139 win32.c --- win32.c 5 Jan 2005 08:00:50 -0000 1.139 +++ win32.c 6 Jan 2005 09:55:02 -0000 @@ -3427,6 +3427,7 @@ rb_w32_close(int fd) return _close(fd); } _set_osfhnd(fd, (SOCKET)INVALID_HANDLE_VALUE); + _close(fd); if (closesocket(sock) == SOCKET_ERROR) { errno = map_errno(WSAGetLastError()); return -1;