From d58eb9e532bc07b3cc53f2c9a6c7c338a11c8f5e Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 9 Apr 2017 05:09:44 +0000 Subject: thread.c: refine stream closed message * thread.c (Init_Thread): [EXPERIMENTAL] refine the "stream closed" special exception message, by explicating that it is caused by threading. [ruby-core:80583] [Bug #13405] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- NEWS | 4 ++++ test/lib/test/unit.rb | 2 +- test/lib/test/unit/parallel.rb | 2 +- thread.c | 3 ++- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index 93145942aa..ad76ac77cf 100644 --- a/NEWS +++ b/NEWS @@ -34,6 +34,10 @@ with all sufficient information, see the ChangeLog file or Redmine * IO#pread [Feature #4532] * IO#pwrite [Feature #4532] +* IOError + + * exception message "stream closed" is changed [Bug #13405] + * Regexp * Update Onigmo 6.1.1. * Support absent operator https://github.com/k-takata/Onigmo/issues/82 diff --git a/test/lib/test/unit.rb b/test/lib/test/unit.rb index 24a689c736..7357a62359 100644 --- a/test/lib/test/unit.rb +++ b/test/lib/test/unit.rb @@ -225,7 +225,7 @@ module Test rescue Errno::EPIPE died rescue IOError - raise unless ["stream closed","closed stream"].include? $!.message + raise unless /stream closed|closed stream/ =~ $!.message died end end diff --git a/test/lib/test/unit/parallel.rb b/test/lib/test/unit/parallel.rb index 50d4427189..a71db5f56a 100644 --- a/test/lib/test/unit/parallel.rb +++ b/test/lib/test/unit/parallel.rb @@ -61,7 +61,7 @@ module Test begin th.join rescue IOError - raise unless ["stream closed","closed stream"].include? $!.message + raise unless /stream closed|closed stream/ =~ $!.message end i.close diff --git a/thread.c b/thread.c index c28f479b5a..c34565e9a1 100644 --- a/thread.c +++ b/thread.c @@ -4881,7 +4881,8 @@ Init_Thread(void) rb_define_method(rb_cThread, "name=", rb_thread_setname, 1); rb_define_method(rb_cThread, "inspect", rb_thread_inspect, 0); - rb_vm_register_special_exception(ruby_error_stream_closed, rb_eIOError, "stream closed"); + rb_vm_register_special_exception(ruby_error_stream_closed, rb_eIOError, + "stream closed in another thread"); cThGroup = rb_define_class("ThreadGroup", rb_cObject); rb_define_alloc_func(cThGroup, thgroup_s_alloc); -- cgit v1.2.3