serialize timer updates to prevent cold dispatch collisions ### Summary Serialize the timer updates to prevent multi-access issues triggering thread crashes. ### Crash Details https://console.firebase.google.com/project/api-project-396418606732/crashlytics/app/ios:com.vzw.hss.myverizon/issues/f0de1b60b067cedb33da2c04100c0c14?time=last-thirty-days&versions=10.8.0%20(20422)&sessionEventKey=fd3321a34ed74beca372b60e89d57c70_1843869769594539690 ``` Crashed: com.apple.root.user-initiated-qos.cooperative 0 libdispatch.dylib 0x3ae7c _dispatch_queue_xref_dispose.cold.2 + 36 1 libdispatch.dylib 0xa4f8 _dispatch_lane_suspend + 62 2 libdispatch.dylib 0x3714 -[OS_dispatch_source _xref_dispose] + 28 3 MVMCoreUI 0x263e44 NotificationOperation.updateStopTimer() + 218 (NotificationHandler.swift:218) 4 MVMCoreUI 0x266890 NotificationOperation.update(with:delegateObject:) + 565 (NotificationHandler.swift:565) 5 MVMCoreUI 0x26665c NotificationHandler.checkAndUpdateExisting(with:delegateObject:) + 419 (NotificationHandler.swift:419) 6 MobileFirstFramework 0x56afa0 MFNotificationHandler.checkAndUpdateExisting(with:delegateObject:) + 436 (TopAlertLegacyBridging.swift:436) 7 MVMCoreUI 0x267564 (1) suspend resume partial function for NotificationHandler.showNotification(for:delegateObject:) + 495 (NotificationHandler.swift:495) 8 libswift_Concurrency.dylib 0x41948 swift::runJobInEstablishedExecutorContext(swift::Job*) + 416 9 libswift_Concurrency.dylib 0x42868 swift_job_runImpl(swift::Job*, swift::ExecutorRef) + 72 10 libdispatch.dylib 0x15944 _dispatch_root_queue_drain + 396 11 libdispatch.dylib 0x16158 _dispatch_worker_thread2 + 164 12 libsystem_pthread.dylib 0xda0 _pthread_wqthread + 228 13 libsystem_pthread.dylib 0xb7c start_wqthread + 8 ``` Co-authored-by: Kyle Hedden <kyle.hedden@verizonwireless.com> See merge request https://gitlab.verizon.com/BPHV_MIPS/mvm_core_ui/-/merge_requests/987 |
||
|---|---|---|
| MVMCoreUI | ||
| MVMCoreUI.xcodeproj | ||
| Scripts | ||
| .gitignore | ||
| .gitlab-ci.yml | ||