From d3354a0c990197d88ec753e84538930ca820a836 Mon Sep 17 00:00:00 2001 From: Alessandro Ros Date: Wed, 21 Jun 2023 13:25:26 +0200 Subject: [PATCH] fix 'runOnDemandRestart: yes' (#1947) --- internal/core/path.go | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/internal/core/path.go b/internal/core/path.go index 948276c4..6e21e576 100644 --- a/internal/core/path.go +++ b/internal/core/path.go @@ -606,19 +606,18 @@ func (pa *path) onDemandPublisherScheduleClose() { } func (pa *path) onDemandPublisherStop() { + if pa.source != nil { + pa.source.(publisher).close() + pa.doPublisherRemove() + } + if pa.onDemandPublisherState == pathOnDemandStateClosing { pa.onDemandPublisherCloseTimer.Stop() pa.onDemandPublisherCloseTimer = newEmptyTimer() } - // set state before doPublisherRemove() pa.onDemandPublisherState = pathOnDemandStateInitial - if pa.source != nil { - pa.source.(publisher).close() - pa.doPublisherRemove() - } - if pa.onDemandCmd != nil { pa.onDemandCmd.Close() pa.onDemandCmd = nil @@ -683,11 +682,7 @@ func (pa *path) doReaderRemove(r reader) { func (pa *path) doPublisherRemove() { if pa.stream != nil { - if pa.conf.HasOnDemandPublisher() && pa.onDemandPublisherState != pathOnDemandStateInitial { - pa.onDemandPublisherStop() - } else { - pa.sourceSetNotReady() - } + pa.sourceSetNotReady() } pa.source = nil @@ -811,11 +806,7 @@ func (pa *path) handlePublisherStart(req pathPublisherStartReq) { func (pa *path) handlePublisherStop(req pathPublisherStopReq) { if req.author == pa.source && pa.stream != nil { - if pa.conf.HasOnDemandPublisher() && pa.onDemandPublisherState != pathOnDemandStateInitial { - pa.onDemandPublisherStop() - } else { - pa.sourceSetNotReady() - } + pa.sourceSetNotReady() } close(req.res) }