diff options
author | Ivan Maidanski <ivmai@mail.ru> | 2019-08-30 00:46:43 +0300 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2019-08-30 00:48:02 +0300 |
commit | 370e939ce19827b9c935380d5b7da05366a94c97 (patch) | |
tree | 3ab7f8431586d29ba724e06a67a7b0273cbd332d /mark.c | |
parent | 79ae7acd5ce4b48478302c7e1610e15e482381f5 (diff) | |
download | bdwgc-370e939ce19827b9c935380d5b7da05366a94c97.tar.gz |
Prevent WARN of incompatible incremental GC if default or manual VDB
Incremental GC based on mprotect is considered incompatible with /proc
roots but the default and manual VDB modes are OK.
* mark.c [WRAP_MARK_SOME && !MSWIN32 && !MSWINCE] (GC_mark_some):
Do not WARN about incompatibility of incremental GC with /proc roots
if DEFAULT_VDB or GC_auto_incremental is false (i.e. manual VDB is on).
Diffstat (limited to 'mark.c')
-rw-r--r-- | mark.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -544,10 +544,12 @@ static void alloc_mark_stack(size_t); /* thread that is in the process of exiting, and disappears */ /* while we are marking it. This seems extremely difficult to */ /* avoid otherwise. */ - if (GC_incremental) { - WARN("Incremental GC incompatible with /proc roots\n", 0); - /* I'm not sure if this could still work ... */ - } +# ifndef DEFAULT_VDB + if (GC_auto_incremental) { + WARN("Incremental GC incompatible with /proc roots\n", 0); + /* I'm not sure if this could still work ... */ + } +# endif GC_setup_temporary_fault_handler(); if(SETJMP(GC_jmp_buf) != 0) goto handle_ex; ret_val = GC_mark_some_inner(cold_gc_frame); |