From 8fc0d93ce1103c69fd964176fa0aad0c6189440d Mon Sep 17 00:00:00 2001 From: Nick Bourdakos Date: Wed, 7 Jun 2023 06:36:14 -0700 Subject: [PATCH] Fix potential deadlock by running timer callback in another thread PiperOrigin-RevId: 538469916 --- internal/platform/implementation/apple/timer.mm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/platform/implementation/apple/timer.mm b/internal/platform/implementation/apple/timer.mm index 36ac8e9c..a243bb6a 100644 --- a/internal/platform/implementation/apple/timer.mm +++ b/internal/platform/implementation/apple/timer.mm @@ -82,7 +82,9 @@ bool Timer::Stop() { bool Timer::FireNow() { if (callback_ != nil) { - callback_(); + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) { + callback_(); + }); return true; } return false;