ruby-changes:10675
From: akr <ko1@a...>
Date: Wed, 11 Feb 2009 17:41:18 +0900 (JST)
Subject: [ruby-changes:10675] Ruby:r22238 (trunk): * ext/socket/lib/socket.rb (Socket.udp_server_sockets): call the block
akr 2009-02-11 17:39:57 +0900 (Wed, 11 Feb 2009) New Revision: 22238 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=22238 Log: * ext/socket/lib/socket.rb (Socket.udp_server_sockets): call the block if given. close the sockets when the block exits. (Socket.udp_server_loop): use udp_server_sockets in block form. Modified files: trunk/ChangeLog trunk/ext/socket/lib/socket.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 22237) +++ ChangeLog (revision 22238) @@ -1,3 +1,9 @@ +Wed Feb 11 17:37:41 2009 Tanaka Akira <akr@f...> + + * ext/socket/lib/socket.rb (Socket.udp_server_sockets): call the block + if given. close the sockets when the block exits. + (Socket.udp_server_loop): use udp_server_sockets in block form. + Wed Feb 11 17:34:16 2009 Tanaka Akira <akr@f...> * ext/socket/lib/socket.rb (Socket.tcp_server_sockets): call the block Index: ext/socket/lib/socket.rb =================================================================== --- ext/socket/lib/socket.rb (revision 22237) +++ ext/socket/lib/socket.rb (revision 22238) @@ -493,7 +493,15 @@ end } - sockets + if block_given? + begin + yield sockets + ensure + sockets.each {|s| s.close if !s.closed? } if sockets + end + else + sockets + end end # :call-seq: @@ -550,10 +558,9 @@ # } # def self.udp_server_loop(host=nil, port, &b) # :yield: message, message_source - sockets = udp_server_sockets(host, port) - udp_server_loop_on(sockets, &b) - ensure - sockets.each {|s| s.close if !s.closed? } if sockets + udp_server_sockets(host, port) {|sockets| + udp_server_loop_on(sockets, &b) + } end # UDP address information used by Socket.udp_server_loop. -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/