kgio.git  about / heads / tags
kinder, gentler I/O for Ruby
blob 05c32de1c2ab23853132046396db71239cd73601 601 bytes (raw)
$ git show 2.4-stable:test/test_cross_thread_close.rb	# shows this blob on the CLI

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
require 'test/unit'
$-w = true
require 'kgio'

class TestCrossThreadClose < Test::Unit::TestCase

  def test_cross_thread_close
    host = ENV["TEST_HOST"] || '127.0.0.1'
    srv = Kgio::TCPServer.new(host, 0)
    thr = Thread.new do
      begin
        srv.kgio_accept
      rescue => e
        e
      end
    end
    sleep(0.1) until thr.stop?
    srv.close
    unless defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby" &&
           RUBY_VERSION == "1.9.3"
      thr.run rescue nil
    end
    thr.join
    assert_kind_of IOError, thr.value
  end
end if defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby"

git clone git://yhbt.net/kgio.git
git clone https://yhbt.net/kgio.git