From 87c08c776cbf8b1f0ae9b85808bdfece22408407 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Wed, 26 Feb 2020 10:12:38 +0300 Subject: [PATCH] Save signaled callback and execute it outside of @synchronized block --- 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