aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--eval.c7
2 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index e7307c4fa3..1e0f923e30 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat Jul 19 11:27:25 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * eval.c (thgroup_add): do not raise ThreadError on terminated
+ thread addition for compatibility. just warning.
+
Sat Jul 19 04:50:56 2003 Nobuyoshi Nakada <nobu.nokada@softhome.net>
* ext/iconv/charset_alias.rb, ext/iconv/extconf.rb: make wrapper
diff --git a/eval.c b/eval.c
index 94e5257168..cebf94bb69 100644
--- a/eval.c
+++ b/eval.c
@@ -9937,9 +9937,6 @@ thgroup_add(group, thread)
if (OBJ_FROZEN(th->thgroup)) {
rb_raise(rb_eThreadError, "can't move from the frozen thread group");
}
- if (!th->thgroup) {
- rb_raise(rb_eThreadError, "terminated thread");
- }
Data_Get_Struct(th->thgroup, struct thgroup, data);
if (data->enclosed) {
rb_raise(rb_eThreadError, "can't move from the enclosed thread group");
@@ -9953,6 +9950,10 @@ thgroup_add(group, thread)
rb_raise(rb_eThreadError, "can't move to the enclosed thread group");
}
+ if (!th->thgroup) {
+ rb_warn(rb_eThreadError, "terminated thread");
+ return;
+ }
th->thgroup = group;
return group;
}