From 5a6070dde3fcd6f13d55ed8b580487b6b1f42263 Mon Sep 17 00:00:00 2001 From: Ignacio Etcheverry Date: Fri, 30 Aug 2019 01:33:50 +0200 Subject: [PATCH] Mono: Force preemptive thread suspend mode as a temporary workaround --- modules/mono/mono_gd/gd_mono.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/mono/mono_gd/gd_mono.cpp b/modules/mono/mono_gd/gd_mono.cpp index aa69803a58d..cd111abd4dc 100644 --- a/modules/mono/mono_gd/gd_mono.cpp +++ b/modules/mono/mono_gd/gd_mono.cpp @@ -317,6 +317,13 @@ void GDMono::initialize() { return; #endif +#if !defined(WINDOWS_ENABLED) && !defined(NO_MONO_THREADS_SUSPEND_WORKAROUND) + // FIXME: Temporary workaround. See: https://github.com/godotengine/godot/issues/29812 + if (!OS::get_singleton()->has_environment("MONO_THREADS_SUSPEND")) { + OS::get_singleton()->set_environment("MONO_THREADS_SUSPEND", "preemptive"); + } +#endif + root_domain = mono_jit_init_version("GodotEngine.RootDomain", "v4.0.30319"); ERR_FAIL_NULL_MSG(root_domain, "Mono: Failed to initialize runtime.");