summaryrefslogtreecommitdiff
path: root/mark.c
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2019-08-30 00:46:43 +0300
committerIvan Maidanski <ivmai@mail.ru>2019-08-30 00:48:02 +0300
commit370e939ce19827b9c935380d5b7da05366a94c97 (patch)
tree3ab7f8431586d29ba724e06a67a7b0273cbd332d /mark.c
parent79ae7acd5ce4b48478302c7e1610e15e482381f5 (diff)
downloadbdwgc-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.c10
1 files 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);