aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--thread.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index d32f2b07d6..b91eb5113f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Sat Aug 22 00:03:19 2009 Yusuke Endoh <mame@tsg.ne.jp>
+
+ * thread.c (rb_check_deadlock): decrease number of sleepers before
+ deadlock detection because the deadlock exception makes main thread
+ run. [ruby-dev:39142]
+
Fri Aug 21 22:34:58 2009 Tanaka Akira <akr@fsij.org>
* enumerator.c (get_next_values): extracted from
diff --git a/thread.c b/thread.c
index 5a3b612e2f..fe00a3f907 100644
--- a/thread.c
+++ b/thread.c
@@ -4049,6 +4049,7 @@ rb_check_deadlock(rb_vm_t *vm)
printf("%d %d %p %p\n", vm->living_threads->num_entries, vm->sleeper, GET_THREAD(), vm->main_thread);
st_foreach(vm->living_threads, debug_i, (st_data_t)0);
#endif
+ vm->sleeper--;
rb_threadptr_raise(vm->main_thread, 2, argv);
}
}