diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-04-20 15:50:52 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-04-20 15:50:52 +0900 |
| commit | d2cad9ac5b8db89fc9d21f5795846f983236798c (patch) | |
| tree | cbcbf25cc7c58b56ca381d6623cc8f94b5ccfc76 /src | |
| parent | 62dae09bf6e2ac965ec7384100f56f40737cbd6f (diff) | |
| download | mruby-d2cad9ac5b8db89fc9d21f5795846f983236798c.tar.gz mruby-d2cad9ac5b8db89fc9d21f5795846f983236798c.zip | |
Disable GC during `gc_each_objects()`; fix #3616
Diffstat (limited to 'src')
| -rw-r--r-- | src/gc.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -1491,7 +1491,9 @@ static void gc_each_objects(mrb_state *mrb, mrb_gc *gc, mrb_each_object_callback *callback, void *data) { mrb_heap_page* page = gc->heaps; + mrb_bool old_disable = gc->disabled; + gc->disabled = TRUE; while (page != NULL) { RVALUE *p, *pend; @@ -1504,6 +1506,7 @@ gc_each_objects(mrb_state *mrb, mrb_gc *gc, mrb_each_object_callback *callback, page = page->next; } + gc->disabled = old_disable; } void |
