Fixes a crash when recording & multitasking #109
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While recording a video and dismissing the app through multitasking, the app will crash with a
SIGKILL
error. The crash line indicates a stall with asemaphore.wait()
call when stopping the recording:kanvas-ios/Classes/Recording/VideoOutputHandler.swift
Line 94 in bc3dff5
The reason seems to indicate a timeout issue with watchdog causing the crash:
It's not safe to wait for a semaphore while on the main thread and I believe that's what we're seeing here.
The minor change switches back to the original local property to avoid calling the stop method multiple times. All of the call sites using the
stopRecordingVideo
andstartRecordingVideo
methods appear to occur on the main thread so I don't believe it's necessary to dispatch to a synchronous queue to avoid race conditions.Testing