aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--actioncable/test/client_test.rb21
1 files changed, 16 insertions, 5 deletions
diff --git a/actioncable/test/client_test.rb b/actioncable/test/client_test.rb
index 98a114a5f4..4f7c585ba3 100644
--- a/actioncable/test/client_test.rb
+++ b/actioncable/test/client_test.rb
@@ -68,12 +68,23 @@ class ClientTest < ActionCable::TestCase
server.min_threads = 1
server.max_threads = 4
- t = Thread.new { server.run.join }
- yield port
+ thread = server.run
- ensure
- server.stop(true) if server
- t.join if t
+ begin
+ yield port
+
+ ensure
+ server.stop
+
+ begin
+ thread.join
+ rescue RuntimeError => ex
+ raise unless ex.message =~ /can't modify frozen IOError/
+
+ # Work around https://bugs.ruby-lang.org/issues/13239
+ server.binder.close
+ end
+ end
end
class SyncClient