Avoid crashes when closing peer connection client.

// FREEBIE
pull/1/head
Matthew Chen 8 years ago
parent f81feca2d6
commit dacb2840f2

@ -339,7 +339,6 @@ class PeerConnectionClient: NSObject, RTCPeerConnectionDelegate, RTCDataChannelD
return setRemoteSessionDescription(remoteDescription)
.then(on: PeerConnectionClient.signalingQueue) {
assert(self.peerConnection != nil)
return self.negotiateAnswerSessionDescription(constraints: constraints)
}
}
@ -369,6 +368,12 @@ class PeerConnectionClient: NSObject, RTCPeerConnectionDelegate, RTCDataChannelD
return Promise { fulfill, reject in
assertOnSignalingQueue()
guard self.peerConnection != nil else {
Logger.debug("\(self.TAG) \(#function) Ignoring obsolete event in terminated client")
reject(NSError(domain:"Obsolete client", code:0, userInfo:nil))
return
}
Logger.debug("\(self.TAG) negotiating answer session.")
peerConnection.answer(for: constraints, completionHandler: { (sdp: RTCSessionDescription?, error: Error?) in

Loading…
Cancel
Save