summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-02-12 16:30:13 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-02-12 16:30:13 +0000
commit49d712fba5a0f8b4cbf1543fd6f1e08bc6cc641a (patch)
tree200c68649e02c253196019a236c32c9b0e735ed0
parent68f70d901f033dc08f985550cc40abbcc0286ca7 (diff)
downloadruby-49d712fba5a0f8b4cbf1543fd6f1e08bc6cc641a.tar.gz
ruby-49d712fba5a0f8b4cbf1543fd6f1e08bc6cc641a.tar.xz
ruby-49d712fba5a0f8b4cbf1543fd6f1e08bc6cc641a.zip
* eval.c (rb_thread_schedule): current thread may be dead when
deadlock. (ruby-bugs:PR#588) git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3488 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--eval.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 4f057bfdf..759611d69 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Feb 13 01:30:10 2003 Nobuyoshi Nakada <nobu.nokada@softhome.net>
+
+ * eval.c (rb_thread_schedule): current thread may be dead when
+ deadlock. (ruby-bugs:PR#588)
+
Thu Feb 13 00:09:47 2003 Nobuyoshi Nakada <nobu.nokada@softhome.net>
* file.c (strrdirsep): ignore trailing directory separators.
diff --git a/eval.c b/eval.c
index bd86870d8..bfd026712 100644
--- a/eval.c
+++ b/eval.c
@@ -8230,7 +8230,9 @@ rb_thread_schedule()
next = main_thread;
rb_thread_ready(next);
next->status = THREAD_TO_KILL;
- rb_thread_save_context(curr_thread);
+ if (!rb_thread_dead(curr_thread)) {
+ rb_thread_save_context(curr_thread);
+ }
rb_thread_deadlock();
}
next->wait_for = 0;