From 18fbdb2ff8774b521447a3e0ce8eef65796b08f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0ediv=C3=BD?= Date: Wed, 29 Sep 2021 00:21:53 +0200 Subject: [PATCH] stream listener count <0 handling. --- internal/capture/stream.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/internal/capture/stream.go b/internal/capture/stream.go index 96907dd9..44608cdb 100644 --- a/internal/capture/stream.go +++ b/internal/capture/stream.go @@ -29,7 +29,7 @@ type StreamManagerCtx struct { listeners map[uintptr]*func(sample types.Sample) listenersMu sync.Mutex - listenersCount uint32 + listenersCount int } func streamNew(codec codec.RTPCodec, pipelineStr func() string, video_id string) *StreamManagerCtx { @@ -142,11 +142,15 @@ func (manager *StreamManagerCtx) RemoveListener(listener *func(sample types.Samp manager.mu.Lock() defer manager.mu.Unlock() - if manager.listenersCount == 0 { + if manager.listenersCount <= 0 { manager.destroyPipeline() - manager.listenersCount = 0 manager.logger.Info().Msgf("last listener, stopping") } + + if manager.listenersCount < 0 { + manager.listenersCount = 0 + manager.logger.Error().Int("listeners-count", manager.listenersCount).Msgf("listener counter is < 0, something is wrong") + } }() }