diff --git a/external/bdwgc b/external/bdwgc index 35a51fcbf1e6..876a56777d9f 160000 --- a/external/bdwgc +++ b/external/bdwgc @@ -1 +1 @@ -Subproject commit 35a51fcbf1e64457e46f9655cec7ccc586a13135 +Subproject commit 876a56777d9fb8ca559c8889c586cc88eb120d75 diff --git a/mono/metadata/boehm-gc.c b/mono/metadata/boehm-gc.c index 5515dcf0cb9e..8add35d9196d 100644 --- a/mono/metadata/boehm-gc.c +++ b/mono/metadata/boehm-gc.c @@ -394,6 +394,13 @@ mono_gc_collect_a_little() return GC_collect_a_little(); } +void mono_gc_start_incremental_collection() +{ +#if HAVE_BDWGC_GC + GC_start_incremental_collection(); +#endif +} + /** * mono_gc_max_generation: * diff --git a/mono/metadata/mono-gc.h b/mono/metadata/mono-gc.h index f2ce265ab19d..dbf2971efc20 100644 --- a/mono/metadata/mono-gc.h +++ b/mono/metadata/mono-gc.h @@ -117,6 +117,7 @@ MONO_API MonoBoolean mono_gc_is_incremental (void); MONO_API void mono_gc_set_incremental(MonoBoolean value); MONO_API void mono_gc_finalize_notify (void); MONO_API int mono_gc_invoke_finalizers (void); +MONO_API void mono_gc_start_incremental_collection(); /* heap walking is only valid in the pre-stop-world event callback */ MONO_API int mono_gc_walk_heap (int flags, MonoGCReferences callback, void *data); diff --git a/mono/metadata/null-gc.c b/mono/metadata/null-gc.c index b95ffa4e29d3..7f91ee38c0ad 100644 --- a/mono/metadata/null-gc.c +++ b/mono/metadata/null-gc.c @@ -55,6 +55,11 @@ mono_gc_collect (int generation) { } +void +mono_gc_start_incremental_collection() +{ +} + int mono_gc_max_generation (void) { diff --git a/mono/metadata/sgen-mono.c b/mono/metadata/sgen-mono.c index 98197c1ca805..2a2f624b1837 100644 --- a/mono/metadata/sgen-mono.c +++ b/mono/metadata/sgen-mono.c @@ -2819,6 +2819,12 @@ mono_gc_collect (int generation) sgen_gc_collect (generation); } +void +mono_gc_start_incremental_collection() +{ + +} + int mono_gc_collection_count (int generation) {