diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | thread.c | 14 |
2 files changed, 16 insertions, 3 deletions
@@ -1,3 +1,8 @@ +Tue Nov 20 10:12:46 2012 KOSAKI Motohiro <kosaki.motohiro@gmail.com> + + * thread.c (rb_threadptr_async_errinfo_active_p): added a small + comment. + Tue Nov 20 10:08:45 2012 KOSAKI Motohiro <kosaki.motohiro@gmail.com> * thread.c, vm_core.h: big rename th to cur_th when works only @@ -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 |