diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-02-12 16:30:13 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-02-12 16:30:13 +0000 |
commit | 49d712fba5a0f8b4cbf1543fd6f1e08bc6cc641a (patch) | |
tree | 200c68649e02c253196019a236c32c9b0e735ed0 /eval.c | |
parent | 68f70d901f033dc08f985550cc40abbcc0286ca7 (diff) | |
download | ruby-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
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -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; |