From 3f0d724dc36df47e4b262f5c37f6690c2832277e Mon Sep 17 00:00:00 2001 From: akr Date: Wed, 11 Feb 2009 07:54:52 +0000 Subject: [PATCH] * ext/socket/lib/socket.rb (Socket.unix_server_socket): close the socket when the block exits. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ ext/socket/lib/socket.rb | 1 + test/socket/test_unix.rb | 3 +++ 3 files changed, 9 insertions(+) diff --git a/ChangeLog b/ChangeLog index 4af8b7d3a1..df1fb46aaa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Feb 11 16:54:26 2009 Tanaka Akira + + * ext/socket/lib/socket.rb (Socket.unix_server_socket): close the + socket when the block exits. + Wed Feb 11 16:50:59 2009 Tanaka Akira * ext/socket/lib/socket.rb (Socket.unix_server_socket): call the block diff --git a/ext/socket/lib/socket.rb b/ext/socket/lib/socket.rb index 1099b7fd2f..adc28147b3 100644 --- a/ext/socket/lib/socket.rb +++ b/ext/socket/lib/socket.rb @@ -612,6 +612,7 @@ class Socket begin yield s ensure + s.close if !s.closed? File.unlink path end else diff --git a/test/socket/test_unix.rb b/test/socket/test_unix.rb index 2b1f4deb33..6e822dbc36 100644 --- a/test/socket/test_unix.rb +++ b/test/socket/test_unix.rb @@ -299,10 +299,13 @@ class TestSocket_UNIXSocket < Test::Unit::TestCase def test_unix_server_socket Dir.mktmpdir {|d| path = "#{d}/sock" + s0 = nil Socket.unix_server_socket(path) {|s| assert_equal(path, s.local_address.unix_path) assert(File.socket?(path)) + s0 = s } + assert(s0.closed?) assert_raise(Errno::ENOENT) { File.stat path } } end