[前][次][番号順一覧][スレッド一覧]

ruby-changes:10671

From: akr <ko1@a...>
Date: Wed, 11 Feb 2009 16:55:02 +0900 (JST)
Subject: [ruby-changes:10671] Ruby:r22234 (trunk): * ext/socket/lib/socket.rb (Socket.unix_server_socket): close the

akr	2009-02-11 16:54:52 +0900 (Wed, 11 Feb 2009)

  New Revision: 22234

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=22234

  Log:
    * ext/socket/lib/socket.rb (Socket.unix_server_socket): close the
      socket when the block exits.

  Modified files:
    trunk/ChangeLog
    trunk/ext/socket/lib/socket.rb
    trunk/test/socket/test_unix.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 22233)
+++ ChangeLog	(revision 22234)
@@ -1,3 +1,8 @@
+Wed Feb 11 16:54:26 2009  Tanaka Akira  <akr@f...>
+
+	* 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  <akr@f...>
 
 	* ext/socket/lib/socket.rb (Socket.unix_server_socket): call the block
Index: ext/socket/lib/socket.rb
===================================================================
--- ext/socket/lib/socket.rb	(revision 22233)
+++ ext/socket/lib/socket.rb	(revision 22234)
@@ -612,6 +612,7 @@
       begin
         yield s
       ensure
+        s.close if !s.closed?
         File.unlink path
       end
     else
Index: test/socket/test_unix.rb
===================================================================
--- test/socket/test_unix.rb	(revision 22233)
+++ test/socket/test_unix.rb	(revision 22234)
@@ -299,10 +299,13 @@
   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

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]