synchronize renegotiate to avoid race condition when that fails

This commit is contained in:
Daniel Gultsch 2024-05-06 13:40:10 +02:00
parent 359b2150eb
commit a46246c423
No known key found for this signature in database
GPG key ID: F43D18AD2A0982C2

View file

@ -2482,7 +2482,7 @@ public class JingleRtpConnection extends AbstractJingleConnection
this.webRTCWrapper.execute(this::renegotiate); this.webRTCWrapper.execute(this::renegotiate);
} }
private void renegotiate() { private synchronized void renegotiate() {
final SessionDescription sessionDescription; final SessionDescription sessionDescription;
try { try {
sessionDescription = setLocalSessionDescription(); sessionDescription = setLocalSessionDescription();
@ -2531,10 +2531,11 @@ public class JingleRtpConnection extends AbstractJingleConnection
+ this.webRTCWrapper.getSignalingState()); + this.webRTCWrapper.getSignalingState());
} }
if (diff.added.size() > 0) { if (diff.added.isEmpty()) {
modifyLocalContentMap(rtpContentMap); return;
sendContentAdd(rtpContentMap, diff.added);
} }
modifyLocalContentMap(rtpContentMap);
sendContentAdd(rtpContentMap, diff.added);
} }
private void initiateIceRestart(final RtpContentMap rtpContentMap) { private void initiateIceRestart(final RtpContentMap rtpContentMap) {