Feature #5097 » ruby193.diff
| bootstraptest/test_thread.rb Thu Jul 28 12:49:25 2011 | ||
|---|---|---|
| } | ||
| assert_equal %q{100}, %q{ | ||
|   100.times{ | ||
|     Thread.new{loop{Thread.pass}} | ||
|     Thread.new{Thread.pass while true} | ||
|   } | ||
| } | ||
| assert_equal %q{ok}, %q{ | ||
| ext/socket/lib/socket.rb Fri Jul 29 10:50:44 2011 | ||
|---|---|---|
|       end | ||
|     end | ||
|     pktinfo_sockets = {} | ||
|     sockets.each {|s| | ||
|       ai = s.local_address | ||
|       if ipv6_recvpktinfo && ai.ipv6? && ai.ip_address == "::" | ||
|         s.setsockopt(:IPV6, ipv6_recvpktinfo, 1) | ||
|         pktinfo_sockets[s] = true | ||
|       end | ||
|     } | ||
| ... | ... | |
|       if ai.ipv6? and pktinfo = controls.find {|c| c.cmsg_is?(:IPV6, :PKTINFO) } | ||
|         ai = Addrinfo.udp(pktinfo.ipv6_pktinfo_addr.ip_address, ai.ip_port) | ||
|         yield msg, UDPSource.new(sender_addrinfo, ai) {|reply_msg| | ||
|           r.sendmsg reply_msg, 0, sender_addrinfo, pktinfo | ||
|           r.sendmsg reply_msg, 0, sender_addrinfo | ||
|         } | ||
|       else | ||
|         yield msg, UDPSource.new(sender_addrinfo, ai) {|reply_msg| | ||
| lib/test/unit.rb Wed Jul 27 16:04:54 2011 | ||
|---|---|---|
|                 end | ||
|             end | ||
|           end | ||
|           @workers.each do |worker| | ||
|             begin | ||
|               timeout(1) do | ||
|                 worker.puts "quit" | ||
|           if @workers | ||
|             @workers.each do |worker| | ||
|               begin | ||
|                 timeout(1) do | ||
|                   worker.puts "quit" | ||
|                 end | ||
|               rescue Errno::EPIPE | ||
|               rescue Timeout::Error | ||
|               end | ||
|             rescue Errno::EPIPE | ||
|             rescue Timeout::Error | ||
|               worker.close | ||
|             end | ||
|             worker.close | ||
|           end | ||
|           begin | ||
|             timeout(0.2*@workers.size) do | ||
|               Process.waitall | ||
|             if @workers | ||
|               timeout(0.2*@workers.size) do | ||
|                 Process.waitall | ||
|               end | ||
|             end | ||
|           rescue Timeout::Error | ||
|             @workers.each do |worker| | ||