From b65ca7b5c6bd2026f14af7d50d4d8520022cf7d3 Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Sat, 3 Jul 2021 12:19:03 +0200 Subject: [PATCH] HLS: fix crash on armv7 (#440) --- internal/hlsconverter/converter.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/internal/hlsconverter/converter.go b/internal/hlsconverter/converter.go index 4cd4fb00..63622058 100644 --- a/internal/hlsconverter/converter.go +++ b/internal/hlsconverter/converter.go @@ -146,7 +146,7 @@ type Converter struct { tsByName map[string]*tsFile tsDeleteCount int tsMutex sync.RWMutex - lastRequestTime int64 + lastRequestTime *int64 // in request chan Request @@ -176,9 +176,12 @@ func New( parent: parent, ctx: ctx, ctxCancel: ctxCancel, - lastRequestTime: time.Now().Unix(), - tsByName: make(map[string]*tsFile), - request: make(chan Request), + lastRequestTime: func() *int64 { + v := time.Now().Unix() + return &v + }(), + tsByName: make(map[string]*tsFile), + request: make(chan Request), } c.log(logger.Info, "opened") @@ -534,7 +537,7 @@ func (c *Converter) runInner(innerCtx context.Context) error { for { select { case <-closeCheckTicker.C: - t := time.Unix(atomic.LoadInt64(&c.lastRequestTime), 0) + t := time.Unix(atomic.LoadInt64(c.lastRequestTime), 0) if time.Since(t) >= closeAfterInactivity { c.ringBuffer.Close() <-writerDone @@ -563,7 +566,7 @@ func (c *Converter) runRequestHandler(terminate chan struct{}, done chan struct{ case preq := <-c.request: req := preq - atomic.StoreInt64(&c.lastRequestTime, time.Now().Unix()) + atomic.StoreInt64(c.lastRequestTime, time.Now().Unix()) conf := c.path.Conf()