My app is using ARKit and Scenekit to render some animation for user interaction, at some points, it hangs with the below thread backtrace
Anyway to tell what is blocking the main thread?
Anyway to tell what is blocking the main thread?
Code Block (lldb) thread backtrace * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP frame #0: 0x00000001b1dd5204 libsystem_kernel.dylib`__psynch_mutexwait + 8 frame #1: 0x00000001cf935224 libsystem_pthread.dylib`_pthread_mutex_firstfit_lock_wait + 92 frame #2: 0x00000001cf935174 libsystem_pthread.dylib`_pthread_mutex_firstfit_lock_slow + 216 frame #3: 0x00000001b821e560 SceneKit`-[SCNRenderer _projectPoint:viewport:] + 220 * frame #4: 0x00000001b82c8438 SceneKit`-[SCNView projectPoint:] + 124 frame #5: 0x000000010477d970 app`static OffScreenIndicator.updateOffScreenOn(displayView=0x00000001071c2b30, sceneView=0x00000001071d5820, target=0x0000000281a3c700, image=0x0000000281411050, color=0x0000000283c3d4c0, frame=0x000000015683e340, self=app.OffScreenIndicator) at OffScreenIndicator.swift:26:37 frame #6: 0x000000010458d5d8 app`ARViewController.phoneIsFar(camPosition=SceneKit.SCNVector3 @ 0x000000016db94730, frame=0x000000015683e340, isTutorial=true, self=0x000000010883bc00) at ARViewController.swift:2434:48 frame #7: 0x000000010458a0b4 app`ARViewController.scanUpdate(frame=0x000000015683e340, showTutorial=true, scanAllDoneAction=0x000000010459300c app`partial apply forwarder for closure #1 () -> () in app.ARViewController.(stateUpdate_tutorial in _ED82BCD2A98A9516DA8B452F58022553)(frame: __C.ARFrame) -> () at <compiler-generated>, self=0x000000010883bc00) at ARViewController.swift:2371:13 frame #8: 0x0000000104560e14 app`ARViewController.stateUpdate_tutorial(frame=0x000000015683e340, self=0x000000010883bc00) at ARViewController.swift:2692:9 frame #9: 0x00000001045609f4 app`implicit closure #22 in implicit closure #21 in ARViewController.bindStateFunctions(frame=0x000000015683e340, self=0x000000010883bc00) at ARViewController.swift:1048:34 frame #10: 0x00000001045506fc app`ARViewController.updateState(frame=0x000000015683e340, self=0x000000010883bc00) at ARViewController.swift:1108:31 frame #11: 0x0000000104550274 app`ARViewController.session(session=0x00000001568cbdd0, frame=0x000000015683e340, self=0x000000010883bc00) at ARViewController.swift:696:9 frame #12: 0x0000000104550778 app`@objc ARViewController.session(_:didUpdate:) at <compiler-generated>:0 frame #13: 0x00000001afa25248 ARKitCore`__36-[ARSession _sessionDidUpdateFrame:]_block_invoke + 128 frame #14: 0x0000000106f37bcc libdispatch.dylib`_dispatch_call_block_and_release + 32 frame #15: 0x0000000106f396c0 libdispatch.dylib`_dispatch_client_callout + 20 frame #16: 0x0000000106f48f34 libdispatch.dylib`_dispatch_main_queue_callback_4CF + 1000 frame #17: 0x0000000183e0111c CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16 frame #18: 0x0000000183dfb120 CoreFoundation`__CFRunLoopRun + 2508 frame #19: 0x0000000183dfa21c CoreFoundation`CFRunLoopRunSpecific + 600 frame #20: 0x000000019b9c4784 GraphicsServices`GSEventRunModal + 164 frame #21: 0x000000018683aee8 UIKitCore`-[UIApplication _run] + 1072 frame #22: 0x000000018684075c UIKitCore`UIApplicationMain + 168 frame #23: 0x00000001022766b4 app`main at AppDelegate.swift:14:7 frame #24: 0x0000000183aba6b0 libdyld.dylib`start + 4 (lldb) (lldb) thread list Process 4264 stopped * thread #1: tid = 0x131e7b, 0x00000001b1dd5204 libsystem_kernel.dylib`__psynch_mutexwait + 8, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP thread #6: tid = 0x131f75, 0x00000001b1db12d0 libsystem_kernel.dylib`mach_msg_trap + 8, name = 'com.apple.uikit.eventfetch-thread' thread #9: tid = 0x131f7e, 0x00000001b1db12d0 libsystem_kernel.dylib`mach_msg_trap + 8, name = 'AVAudioSession Notify Thread' thread #11: tid = 0x131ffc, 0x00000001b1db12d0 libsystem_kernel.dylib`mach_msg_trap + 8, name = 'com.apple.NSURLConnectionLoader' thread #14: tid = 0x132099, 0x00000001b1db12d0 libsystem_kernel.dylib`mach_msg_trap + 8, name = 'com.apple.coreaudio.AQClient' thread #21: tid = 0x1320d9, 0x00000001cf938764 libsystem_pthread.dylib`start_wqthread thread #27: tid = 0x132153, 0x00000001b1db12d0 libsystem_kernel.dylib`mach_msg_trap + 8, name = 'com.apple.CoreMotion.MotionThread' thread #28: tid = 0x132157, 0x00000001cf938764 libsystem_pthread.dylib`start_wqthread thread #46: tid = 0x1321ff, 0x00000001cf938764 libsystem_pthread.dylib`start_wqthread thread #49: tid = 0x132202, 0x00000001cf938764 libsystem_pthread.dylib`start_wqthread thread #53: tid = 0x13228c, 0x00000001cf938764 libsystem_pthread.dylib`start_wqthread thread #58: tid = 0x132397, 0x00000001b1db12d0 libsystem_kernel.dylib`mach_msg_trap + 8, name = 'com.apple.arkit.ardisplaylink.0x283d67a00' thread #59: tid = 0x132398, 0x00000001b1dd5f5c libsystem_kernel.dylib`__ulock_wait + 8, name = 'com.apple.scenekit.scnview-renderer', queue = 'com.apple.scenekit.renderingQueue.ARSCNView0x1071d5820' thread #60: tid = 0x1323a2, 0x00000001b1db12d0 libsystem_kernel.dylib`mach_msg_trap + 8, name = 'H11ANEServicesThread' thread #61: tid = 0x1323b3, 0x00000001b1db12d0 libsystem_kernel.dylib`mach_msg_trap + 8, name = 'H11ANEServicesThread' thread #62: tid = 0x13249f, 0x00000001b1db1324 libsystem_kernel.dylib`semaphore_timedwait_trap + 8 thread #65: tid = 0x1324a8, 0x00000001cf938764 libsystem_pthread.dylib`start_wqthread thread #67: tid = 0x1324df, 0x00000001b1db1324 libsystem_kernel.dylib`semaphore_timedwait_trap + 8 thread #68: tid = 0x132505, 0x0000000198e9d150 libobjc.A.dylib`object_getClassName, queue = 'com.apple.libdispatch-manager' thread #69: tid = 0x132507, 0x0000000198e9d150 libobjc.A.dylib`object_getClassName thread #70: tid = 0x132537, 0x00000001cf938764 libsystem_pthread.dylib`start_wqthread thread #71: tid = 0x132538, 0x00000001cf938764 libsystem_pthread.dylib`start_wqthread (lldb)