diff --git a/dlls/mscoree/corruntimehost.c b/dlls/mscoree/corruntimehost.c index e932a7f58be..b72af709c03 100644 --- a/dlls/mscoree/corruntimehost.c +++ b/dlls/mscoree/corruntimehost.c @@ -1544,6 +1544,8 @@ __int32 WINAPI _CorExeMain(void) if (domain) { + int dummy; + mono_threads_enter_gc_unsafe_region(&dummy); mono_thread_manage(); mono_runtime_quit(); } diff --git a/dlls/mscoree/metahost.c b/dlls/mscoree/metahost.c index 18232a45686..575d6ce1d39 100644 --- a/dlls/mscoree/metahost.c +++ b/dlls/mscoree/metahost.c @@ -124,6 +124,7 @@ MonoString* (CDECL *mono_string_new)(MonoDomain *domain, const char *str); static char* (CDECL *mono_stringify_assembly_name)(MonoAssemblyName *aname); MonoThread* (CDECL *mono_thread_attach)(MonoDomain *domain); void (CDECL *mono_thread_manage)(void); +void (CDECL *mono_threads_enter_gc_unsafe_region)(void *stackdata); void (CDECL *mono_trace_set_print_handler)(MonoPrintCallback callback); void (CDECL *mono_trace_set_printerr_handler)(MonoPrintCallback callback); @@ -224,6 +225,7 @@ static HRESULT load_mono(LPCWSTR mono_path) LOAD_MONO_FUNCTION(mono_string_new); LOAD_MONO_FUNCTION(mono_thread_attach); LOAD_MONO_FUNCTION(mono_thread_manage); + LOAD_MONO_FUNCTION(mono_threads_enter_gc_unsafe_region); #undef LOAD_MONO_FUNCTION diff --git a/dlls/mscoree/mscoree_private.h b/dlls/mscoree/mscoree_private.h index 2b9c1dd35e5..250bd24ad10 100644 --- a/dlls/mscoree/mscoree_private.h +++ b/dlls/mscoree/mscoree_private.h @@ -177,6 +177,7 @@ extern void (CDECL *mono_runtime_quit)(void) DECLSPEC_HIDDEN; extern MonoString* (CDECL *mono_string_new)(MonoDomain *domain, const char *str) DECLSPEC_HIDDEN; extern MonoThread* (CDECL *mono_thread_attach)(MonoDomain *domain) DECLSPEC_HIDDEN; extern void (CDECL *mono_thread_manage)(void) DECLSPEC_HIDDEN; +extern void (CDECL *mono_threads_enter_gc_unsafe_region)(void *stackdata) DECLSPEC_HIDDEN; extern void (CDECL *mono_trace_set_print_handler)(MonoPrintCallback callback) DECLSPEC_HIDDEN; extern void (CDECL *mono_trace_set_printerr_handler)(MonoPrintCallback callback) DECLSPEC_HIDDEN;