Skip to content

Commit 67e4cf8

Browse files
authored
Merge pull request #900 from walkline/audio-renderer-deadlock
Fix deadlock in MediaPlayer.
2 parents bcefab9 + d3d1c8c commit 67e4cf8

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

Telegram-Mac/MediaPlayerAudioRenderer.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -693,6 +693,13 @@ final class MediaPlayerAudioRenderer {
693693
let audioTimebase: CMTimebase
694694

695695
init(playAndRecord: Bool, forceAudioToSpeaker: Bool, baseRate: Double, volume: Float, updatedRate: @escaping () -> Void, audioPaused: @escaping () -> Void) {
696+
697+
// Here we are probably running inside of playerQueue.
698+
// For some reason deadlock may occure in case of intensive MediaPlayerAudioRenderer object creation.
699+
// Let's wait until `audioPlayerRendererQueue` finish all scheduled jobs,
700+
// including "garabage" collection of previous object.
701+
audioPlayerRendererQueue.sync{}
702+
696703
var audioClock: CMClock?
697704

698705
var deviceId:AudioDeviceID = AudioDeviceID()

0 commit comments

Comments
 (0)