From b996d06522490f3329249f2d0efb284a46240a69 Mon Sep 17 00:00:00 2001 From: danwalmsley Date: Wed, 26 Feb 2020 07:57:28 -0300 Subject: [PATCH] Merge pull request #3613 from AvaloniaUI/osx-potential-deadlock-in-user-code OSX - fix potential deadlock with user code --- native/Avalonia.Native/src/OSX/platformthreading.mm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/native/Avalonia.Native/src/OSX/platformthreading.mm b/native/Avalonia.Native/src/OSX/platformthreading.mm index e7abedae51..ed00f8c5e1 100644 --- a/native/Avalonia.Native/src/OSX/platformthreading.mm +++ b/native/Avalonia.Native/src/OSX/platformthreading.mm @@ -157,11 +157,14 @@ NSArray* _modes; -(void) perform { + ComPtr cb; @synchronized (self) { _signaled = false; - if(_parent != NULL && _parent->SignaledCallback != NULL) - _parent->SignaledCallback->Signaled(0, false); + if(_parent != NULL) + cb = _parent->SignaledCallback; } + if(cb != nullptr) + cb->Signaled(0, false); } -(void) setParent:(PlatformThreadingInterface *)parent