$OpenBSD$ --- bootstraptest/test_thread.rb.orig Wed Jul 27 13:02:36 2011 +++ bootstraptest/test_thread.rb Thu Jul 28 12:49:25 2011 @@ -51,7 +51,7 @@ assert_equal %q{5000}, %q{ } assert_equal %q{100}, %q{ 100.times{ - Thread.new{loop{Thread.pass}} + Thread.new{Thread.pass while true} } } assert_equal %q{ok}, %q{ $OpenBSD$ --- ext/socket/lib/socket.rb.orig Wed Jul 27 13:02:37 2011 +++ ext/socket/lib/socket.rb Fri Jul 29 10:50:44 2011 @@ -541,12 +541,10 @@ class Socket < BasicSocket 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 } @@ -591,7 +589,7 @@ class Socket < BasicSocket 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| $OpenBSD$ --- lib/test/unit.rb.orig Wed Jul 27 15:21:54 2011 +++ lib/test/unit.rb Wed Jul 27 16:04:54 2011 @@ -493,19 +493,23 @@ module Test 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|