From 038ef3f05cbddb484c181a8614b088d99014917b Mon Sep 17 00:00:00 2001 From: ko1 Date: Mon, 13 Jun 2011 11:25:44 +0000 Subject: * vm_core.h, vm_insnhelper.h: move decl. of ruby_vm_global_state_version and related macros from vm_core.h to vm_insnhelper.h. * vm.c (vm_clear_all_cache): added. This function is called when ruby_vm_global_state_version overflows. TODO: vm_clear_all_inline_method_cache() is only place holder. We need to implement it ASAP. * vm_method.c (vm_clear_global_method_cache): added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- vm_insnhelper.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'vm_insnhelper.h') diff --git a/vm_insnhelper.h b/vm_insnhelper.h index 31ef216027..1b352937fe 100644 --- a/vm_insnhelper.h +++ b/vm_insnhelper.h @@ -208,4 +208,13 @@ extern VALUE ruby_vm_const_missing_count; #endif +static VALUE ruby_vm_global_state_version = 1; + +#define GET_VM_STATE_VERSION() (ruby_vm_global_state_version) +#define INC_VM_STATE_VERSION() do { \ + ruby_vm_global_state_version = (ruby_vm_global_state_version + 1); \ + if (ruby_vm_global_state_version == 0) vm_clear_all_cache(); \ +} while (0) +static void vm_clear_all_cache(void); + #endif /* RUBY_INSNHELPER_H */ -- cgit v1.2.3