From: Nobuyoshi Nakada Date: 2007-07-04T09:56:02+09:00 Subject: Re: Timeout doesn't work correctly under windows when executing complex regexp. Hi, At Wed, 4 Jul 2007 01:41:54 +0900, yuanyi zhang wrote in [ruby-core:11588]: > The reason why Y thread won't be woken up is because rb_thread_tick in > CHECK_INTS isn't decreased THREAD_TICK(500) times, so Y thread won't > get scheduled until x finished: > > rubysig.h regex.c doesn't include rubysig.h but defines CHECK_INTS in itself. # define CHECK_INTS do {\ if (!rb_prohibit_interrupt) {\ if (rb_trap_pending) rb_trap_exec();\ }\ } while (0) This does nothing when interrupt is prohibited. -- Nobu Nakada