Skip to content

Commit 7fdc97c

Browse files
committed
Add API to disable incremental mode
1 parent 402a0df commit 7fdc97c

File tree

4 files changed

+24
-0
lines changed

4 files changed

+24
-0
lines changed

mono/metadata/boehm-gc.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,19 @@ mono_gc_is_incremental()
454454
#endif
455455
}
456456

457+
void
458+
mono_gc_set_incremental(MonoBoolean value)
459+
{
460+
#if HAVE_BDWGC_GC
461+
if (GC_is_incremental_mode() == value)
462+
return;
463+
if (value)
464+
GC_enable_incremental();
465+
else
466+
GC_disable_incremental();
467+
#endif
468+
}
469+
457470
gboolean
458471
mono_gc_is_gc_thread (void)
459472
{

mono/metadata/mono-gc.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ MONO_API int64_t mono_gc_get_max_time_slice_ns ();
114114
MONO_API void mono_gc_set_max_time_slice_ns (int64_t maxTimeSlice);
115115
MONO_API MonoBoolean mono_gc_pending_finalizers (void);
116116
MONO_API MonoBoolean mono_gc_is_incremental (void);
117+
MONO_API void mono_gc_set_incremental(MonoBoolean value);
117118
MONO_API void mono_gc_finalize_notify (void);
118119
MONO_API int mono_gc_invoke_finalizers (void);
119120
/* heap walking is only valid in the pre-stop-world event callback */

mono/metadata/null-gc.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,11 @@ mono_gc_is_incremental()
108108
return FALSE;
109109
}
110110

111+
void
112+
mono_gc_set_incremental(MonoBoolean value)
113+
{
114+
}
115+
111116
gboolean
112117
mono_gc_is_gc_thread (void)
113118
{

mono/metadata/sgen-mono.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2843,6 +2843,11 @@ mono_gc_is_incremental()
28432843
return FALSE;
28442844
}
28452845

2846+
void
2847+
mono_gc_set_incremental(MonoBoolean value)
2848+
{
2849+
}
2850+
28462851
void
28472852
mono_gc_set_max_time_slice_ns(int64_t maxTimeSlice)
28482853
{

0 commit comments

Comments
 (0)