summaryrefslogtreecommitdiffstats
path: root/vm_core.h
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-07-27 05:59:32 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-07-27 05:59:32 +0000
commita5511af685cfbc4047b2a273edb96cfa364e90a1 (patch)
tree5b3e6083f50f309db656bcd26f8697aaecd826a3 /vm_core.h
parent999c9535ee6a1f52f94d1022f69b4f58884e43d7 (diff)
downloadruby-a5511af685cfbc4047b2a273edb96cfa364e90a1.tar.gz
ruby-a5511af685cfbc4047b2a273edb96cfa364e90a1.tar.xz
ruby-a5511af685cfbc4047b2a273edb96cfa364e90a1.zip
* 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: http://svn.ruby-lang.org/repos/ruby/trunk@18231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_core.h')
-rw-r--r--vm_core.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/vm_core.h b/vm_core.h
index 48fde8d8d..7ac6bb1ce 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); \
} \