From 91833c852e47a83ed01deb26213b9d3184de736d Mon Sep 17 00:00:00 2001 From: David Snopek Date: Tue, 17 Sep 2024 14:53:39 -0500 Subject: Avoid `thread_local` on MacOS to prevent issues with hot reload --- include/godot_cpp/core/class_db.hpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'include/godot_cpp/core') diff --git a/include/godot_cpp/core/class_db.hpp b/include/godot_cpp/core/class_db.hpp index 85bc0fb..d9dce79 100644 --- a/include/godot_cpp/core/class_db.hpp +++ b/include/godot_cpp/core/class_db.hpp @@ -129,6 +129,9 @@ private: static GDExtensionClassInstancePtr _recreate_instance_func(void *data, GDExtensionObjectPtr obj) { if constexpr (!std::is_abstract_v) { #ifdef HOT_RELOAD_ENABLED +#ifdef _GODOT_CPP_AVOID_THREAD_LOCAL + std::lock_guard lk(Wrapped::_constructing_mutex); +#endif Wrapped::_constructing_recreate_owner = obj; T *new_instance = (T *)memalloc(sizeof(T)); memnew_placement(new_instance, T); -- cgit v1.2.3