diff --git a/ChangeLog b/ChangeLog index f8306bfd1b..4aa364a275 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Nov 20 10:12:46 2012 KOSAKI Motohiro + + * thread.c (rb_threadptr_async_errinfo_active_p): added a small + comment. + Tue Nov 20 10:08:45 2012 KOSAKI Motohiro * thread.c, vm_core.h: big rename th to cur_th when works only diff --git a/thread.c b/thread.c index d21fc1a36d..38251afd56 100644 --- a/thread.c +++ b/thread.c @@ -1476,12 +1476,20 @@ rb_threadptr_async_errinfo_deque(rb_thread_t *th, enum interrupt_timing timing) int rb_threadptr_async_errinfo_active_p(rb_thread_t *th) { - if (th->async_errinfo_queue_checked || rb_threadptr_async_errinfo_empty_p(th)) { + /* + * For optimization, we don't check async errinfo queue + * if it nor a thread interrupt mask were not changed + * since last check. + */ + if (th->async_errinfo_queue_checked) { return 0; } - else { - return 1; + + if (rb_threadptr_async_errinfo_empty_p(th)) { + return 0; } + + return 1; } static VALUE