shogi-server source
Revision | dd0c79d4efe19ccdd1b0b36c78e636ae85e1aafe (tree) |
---|---|
Time | 2014-11-24 23:04:14 |
Author | Daigo Moriwaki <daigo@debi...> |
Commiter | Daigo Moriwaki |
Fixed logout in test/TC_forrk.rb
@@ -35,21 +35,25 @@ class SocketPlayer | ||
35 | 35 | |
36 | 36 | def reader |
37 | 37 | @thread = Thread.new do |
38 | - Thread.pass | |
39 | - loop do | |
40 | -# break if @socket.closed? | |
41 | - if r = select([@socket], nil, nil, 10) | |
42 | - str = r[0].first.gets | |
43 | - break if str.nil? | |
44 | - @mutex.synchronize do | |
45 | - if %r!^[\+\-]\d{4}\w{2},T\d+$! =~ str | |
46 | - @received_moves += 1 | |
38 | + begin | |
39 | + Thread.pass | |
40 | + loop do | |
41 | + break if @socket.closed? | |
42 | + if r = select([@socket], nil, nil, 10) | |
43 | + str = r[0].first.gets | |
44 | + break if str.nil? | |
45 | + @mutex.synchronize do | |
46 | + if %r!^[\+\-]\d{4}\w{2},T\d+$! =~ str | |
47 | + @received_moves += 1 | |
48 | + end | |
49 | + @message << str | |
47 | 50 | end |
48 | - @message << str | |
51 | + else | |
52 | + raise "timed out" | |
49 | 53 | end |
50 | - else | |
51 | - raise "timed out" | |
52 | 54 | end |
55 | + rescue IOError | |
56 | + $stderr.puts "\nReader thread interrupted" | |
53 | 57 | end |
54 | 58 | end |
55 | 59 | end |
@@ -123,8 +127,8 @@ class SocketPlayer | ||
123 | 127 | end |
124 | 128 | |
125 | 129 | def logout |
126 | - stop_reader | |
127 | 130 | @socket.puts "LOGOUT" |
131 | + @socket.close | |
128 | 132 | end |
129 | 133 | |
130 | 134 | end |