Fix thread checking to queue instances for deletion
This commit is contained in:
parent
06ea441564
commit
a018cbaee1
|
@ -705,7 +705,7 @@ bool _GodotSharp::is_domain_loaded() {
|
|||
|
||||
void _GodotSharp::queue_dispose(Object *p_object) {
|
||||
|
||||
if (Thread::get_main_id() == Thread::get_caller_id() && !GDMono::get_singleton()->is_finalizing_scripts_domain()) {
|
||||
if (GDMonoUtils::is_main_thread() && !GDMono::get_singleton()->is_finalizing_scripts_domain()) {
|
||||
_dispose_object(p_object);
|
||||
} else {
|
||||
#ifndef NO_THREADS
|
||||
|
@ -722,7 +722,7 @@ void _GodotSharp::queue_dispose(Object *p_object) {
|
|||
|
||||
void _GodotSharp::queue_dispose(NodePath *p_node_path) {
|
||||
|
||||
if (Thread::get_main_id() == Thread::get_caller_id() && !GDMono::get_singleton()->is_finalizing_scripts_domain()) {
|
||||
if (GDMonoUtils::is_main_thread() && !GDMono::get_singleton()->is_finalizing_scripts_domain()) {
|
||||
memdelete(p_node_path);
|
||||
} else {
|
||||
#ifndef NO_THREADS
|
||||
|
@ -739,7 +739,7 @@ void _GodotSharp::queue_dispose(NodePath *p_node_path) {
|
|||
|
||||
void _GodotSharp::queue_dispose(RID *p_rid) {
|
||||
|
||||
if (Thread::get_main_id() == Thread::get_caller_id() && !GDMono::get_singleton()->is_finalizing_scripts_domain()) {
|
||||
if (GDMonoUtils::is_main_thread() && !GDMono::get_singleton()->is_finalizing_scripts_domain()) {
|
||||
memdelete(p_rid);
|
||||
} else {
|
||||
#ifndef NO_THREADS
|
||||
|
|
|
@ -149,6 +149,10 @@ void attach_current_thread();
|
|||
void detach_current_thread();
|
||||
MonoThread *get_current_thread();
|
||||
|
||||
_FORCE_INLINE_ bool is_main_thread() {
|
||||
return mono_domain_get() != NULL && mono_thread_get_main() == mono_thread_current();
|
||||
}
|
||||
|
||||
GDMonoClass *get_object_class(MonoObject *p_object);
|
||||
GDMonoClass *type_get_proxy_class(const StringName &p_type);
|
||||
GDMonoClass *get_class_native_base(GDMonoClass *p_class);
|
||||
|
|
Loading…
Reference in New Issue