From daec96f465ecc7f7ad851adb6e6cec75f31790b2 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Mon, 6 Apr 2020 17:33:50 +0200 Subject: [PATCH] openvidu-server: change getStats strategy --- .../openvidu/server/kurento/core/KurentoParticipant.java | 8 ++------ .../server/kurento/core/KurentoSessionManager.java | 4 +--- .../openvidu/server/kurento/endpoint/MediaEndpoint.java | 4 ++-- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoParticipant.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoParticipant.java index ababc03a..c8e66519 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoParticipant.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoParticipant.java @@ -402,9 +402,7 @@ public class KurentoParticipant extends Participant { } publisher.unregisterErrorListeners(); - if (publisher.kmsWebrtcStatsThread != null) { - publisher.kmsWebrtcStatsThread.cancel(true); - } + publisher.cancelStatsLoop.set(true); for (MediaElement el : publisher.getMediaElements()) { releaseElement(getParticipantPublicId(), el); @@ -427,9 +425,7 @@ public class KurentoParticipant extends Participant { if (subscriber != null) { subscriber.unregisterErrorListeners(); - if (subscriber.kmsWebrtcStatsThread != null) { - subscriber.kmsWebrtcStatsThread.cancel(true); - } + subscriber.cancelStatsLoop.set(true); releaseElement(senderName, subscriber.getEndpoint()); diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java index aeea47bb..288bc496 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java @@ -972,9 +972,7 @@ public class KurentoSessionManager extends SessionManager { final PassThrough passThru = publisher.disconnectFromPassThrough(); // 2) Destroy the broken PublisherEndpoint and nothing else - if (publisher.kmsWebrtcStatsThread != null) { - publisher.kmsWebrtcStatsThread.cancel(true); - } + publisher.cancelStatsLoop.set(true); kParticipant.releaseElement(participant.getParticipantPublicId(), publisher.getEndpoint()); // 3) Create a new PublisherEndpoint connecting it to the previous PassThrough diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/endpoint/MediaEndpoint.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/endpoint/MediaEndpoint.java index 7954ab7a..7ccceb2e 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/endpoint/MediaEndpoint.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/endpoint/MediaEndpoint.java @@ -22,7 +22,7 @@ import java.util.List; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.CountDownLatch; -import java.util.concurrent.Future; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import org.kurento.client.BaseRtpEndpoint; @@ -94,9 +94,9 @@ public abstract class MediaEndpoint { public String selectedRemoteIceCandidate; public Queue kmsEvents = new ConcurrentLinkedQueue<>(); - public Future kmsWebrtcStatsThread; public Runnable kmsWebrtcStatsRunnable; public AtomicInteger statsNotFoundErrors = new AtomicInteger(0); + public AtomicBoolean cancelStatsLoop = new AtomicBoolean(false); /** * Constructor to set the owner, the endpoint's name and the media pipeline.