From 370e939ce19827b9c935380d5b7da05366a94c97 Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Fri, 30 Aug 2019 00:46:43 +0300 Subject: [PATCH] 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). --- mark.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mark.c b/mark.c index 77d6b0b5..8cd13f50 100644 --- a/mark.c +++ b/mark.c @@ -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); -- 2.40.0