diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2015-10-21 21:38:24 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2015-10-21 21:38:24 +0900 |
| commit | f6c58616a2c55331770de4c71af08caf3fae4204 (patch) | |
| tree | 394187020f5919a4d7b49e4dc0df99a69c813505 /include/mruby.h | |
| parent | b41f1180c87086d5245661798e75748a847df695 (diff) | |
| parent | 6b67590fdab696ef0aff2cb283be2bddc80a3ed4 (diff) | |
| download | mruby-f6c58616a2c55331770de4c71af08caf3fae4204.tar.gz mruby-f6c58616a2c55331770de4c71af08caf3fae4204.zip | |
Merge pull request #2997 from furunkel/gc_cleanup
GC cleanup
Diffstat (limited to 'include/mruby.h')
| -rw-r--r-- | include/mruby.h | 37 |
1 files changed, 2 insertions, 35 deletions
diff --git a/include/mruby.h b/include/mruby.h index d50ec3496..b0161aff7 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -35,6 +35,7 @@ #include "mrbconf.h" #include "mruby/common.h" #include "mruby/value.h" +#include "mruby/gc.h" #include "mruby/version.h" /** @@ -64,10 +65,6 @@ struct mrb_state; */ typedef void* (*mrb_allocf) (struct mrb_state *mrb, void*, size_t, void *ud); -#ifndef MRB_GC_ARENA_SIZE -#define MRB_GC_ARENA_SIZE 100 -#endif - #ifndef MRB_FIXED_STATE_ATEXIT_STACK_SIZE #define MRB_FIXED_STATE_ATEXIT_STACK_SIZE 5 #endif @@ -114,12 +111,6 @@ struct mrb_context { struct RFiber *fib; }; -enum gc_state { - GC_STATE_ROOT = 0, - GC_STATE_MARK, - GC_STATE_SWEEP -}; - struct mrb_jmpbuf; typedef void (*mrb_atexit_func)(struct mrb_state*); @@ -153,32 +144,8 @@ typedef struct mrb_state { struct RClass *symbol_class; struct RClass *kernel_module; - struct heap_page *heaps; /* heaps for GC */ - struct heap_page *sweeps; - struct heap_page *free_heaps; - size_t live; /* count of live objects */ -#ifdef MRB_GC_FIXED_ARENA - struct RBasic *arena[MRB_GC_ARENA_SIZE]; /* GC protection array */ -#else - struct RBasic **arena; /* GC protection array */ - int arena_capa; -#endif - int arena_idx; - - enum gc_state gc_state; /* state of gc */ - int current_white_part; /* make white object by white_part */ - struct RBasic *gray_list; /* list of gray objects to be traversed incrementally */ - struct RBasic *atomic_gray_list; /* list of objects to be traversed atomically */ - size_t gc_live_after_mark; - size_t gc_threshold; - int gc_interval_ratio; - int gc_step_ratio; - mrb_bool gc_disabled:1; - mrb_bool gc_full:1; - mrb_bool is_generational_gc_mode:1; - mrb_bool out_of_memory:1; - size_t majorgc_old_threshold; struct alloca_header *mems; + mrb_gc gc; mrb_sym symidx; struct kh_n2s *name2sym; /* symbol hash */ |
