From f69efdbd9580f3c336ca5c3caed2926afb651793 Mon Sep 17 00:00:00 2001 From: Asaf Korem <55082339+asafkorem@users.noreply.github.com> Date: Thu, 14 Mar 2024 18:09:22 +0200 Subject: [PATCH] feat: add flag to disable main-runloop sync. (#73) Use experimental flag `DTXDisableMainRunLoopSync` for testing purposes. --- DetoxSync/DetoxSync/SyncManager/DTXSyncManager.m | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/DetoxSync/DetoxSync/SyncManager/DTXSyncManager.m b/DetoxSync/DetoxSync/SyncManager/DTXSyncManager.m index 24d7b08..d09ee47 100644 --- a/DetoxSync/DetoxSync/SyncManager/DTXSyncManager.m +++ b/DetoxSync/DetoxSync/SyncManager/DTXSyncManager.m @@ -191,9 +191,16 @@ + (void)__superload _pendingIdleBlocks = [NSMutableArray new]; _trackedThreads = [NSMapTable weakToStrongObjectsMapTable]; + [_trackedThreads setObject:@{@"name": @"Main Thread"} forKey:[NSThread mainThread]]; - - [self _trackCFRunLoop:CFRunLoopGetMain() name:@"Main RunLoop"]; + + // Experimental: disable main run-loop sync, due to excessive activity on the main thread. + BOOL shouldDisableMainRunLoopSync = + [NSUserDefaults.standardUserDefaults boolForKey:@"DTXDisableMainRunLoopSync"]; + if (!shouldDisableMainRunLoopSync) { + [self _trackCFRunLoop:CFRunLoopGetMain() name:@"Main RunLoop"]; + } + _systemWasBusy = DTXIsSystemBusyNow(); } }