From 60be3dc560d1bd61344c328ee6a939ec9cffa537 Mon Sep 17 00:00:00 2001 From: ko1 Date: Sun, 27 Jul 2008 05:59:32 +0000 Subject: * include/ruby/ruby.h: add a type T_DEFERRED. * gc.c: fix deferred finalizer system. finalize processes of T_DATA and T_FILE are executed after gc process. And fix to use BUILTIN_TYPE() instead of seeing flag. * thread.c, vm_core.h: add RUBY_VM_SET_FINALIZER_INTERRUPT() and check intterupt_flag at rb_thread_execute_interrupts(). * thread.c (mutex_mark): fix to mark next_mutex. * vm.c (rb_thread_mark): fix to mark keeping_mutexes. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- vm_core.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'vm_core.h') diff --git a/vm_core.h b/vm_core.h index 48fde8d8d9..7ac6bb1ceb 100644 --- a/vm_core.h +++ b/vm_core.h @@ -690,12 +690,13 @@ extern rb_vm_t *ruby_current_vm; #define RUBY_VM_SET_INTERRUPT(th) ((th)->interrupt_flag |= 0x02) #define RUBY_VM_SET_TIMER_INTERRUPT(th) ((th)->interrupt_flag |= 0x01) +#define RUBY_VM_SET_FINALIZER_INTERRUPT(th) ((th)->interrupt_flag |= 0x04) #define RUBY_VM_INTERRUPTED(th) ((th)->interrupt_flag & 0x02) void rb_thread_execute_interrupts(rb_thread_t *); #define RUBY_VM_CHECK_INTS_TH(th) do { \ - if(th->interrupt_flag){ \ + if (th->interrupt_flag) { \ /* TODO: trap something event */ \ rb_thread_execute_interrupts(th); \ } \ -- cgit v1.2.3