diff --git a/ChangeLog b/ChangeLog index 4f057bfdf0..759611d691 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Feb 13 01:30:10 2003 Nobuyoshi Nakada + + * 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 * file.c (strrdirsep): ignore trailing directory separators. diff --git a/eval.c b/eval.c index bd86870d8c..bfd0267126 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;