From bd1a16300299a990edcd0a5e4d023e538f70dd93 Mon Sep 17 00:00:00 2001 From: Ben Adrian Sarmiento Date: Wed, 26 Jun 2024 23:33:01 +0200 Subject: [PATCH] Use atomic value for initial traffic --- internal/handlers/home.go | 6 +++--- internal/handlers/router.go | 7 ++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/internal/handlers/home.go b/internal/handlers/home.go index 2d0ac93..edb792d 100644 --- a/internal/handlers/home.go +++ b/internal/handlers/home.go @@ -198,8 +198,8 @@ func (zr *Handlers) handleHome(resp http.ResponseWriter, req *http.Request) { } efficiency := response.ServedMB * 100 / denominator - if zr.initialTraffic > response.TrafficLogged { - zr.initialTraffic = response.TrafficLogged + if zr.initialTraffic.Load() > response.TrafficLogged { + zr.initialTraffic.Store(response.TrafficLogged) } out += fmt.Sprintf(` @@ -250,7 +250,7 @@ func (zr *Handlers) handleHome(resp http.ResponseWriter, req *http.Request) { response.NumGC, response.PID, response.TrafficLogged, - response.TrafficLogged-bToMb(uint64(zr.initialTraffic)), + response.TrafficLogged-bToMb(zr.initialTraffic.Load()), response.RequestedMB, response.ServedMB, efficiency, diff --git a/internal/handlers/router.go b/internal/handlers/router.go index 7bcc79a..6fb5441 100644 --- a/internal/handlers/router.go +++ b/internal/handlers/router.go @@ -6,6 +6,7 @@ import ( "net/url" "path/filepath" "strings" + "sync/atomic" "github.com/debridmediamanager/zurg/internal/config" "github.com/debridmediamanager/zurg/internal/dav" @@ -26,7 +27,7 @@ type Handlers struct { api *realdebrid.RealDebrid workerPool *ants.Pool hosts []string - initialTraffic uint64 + initialTraffic atomic.Uint64 log *logutil.Logger } @@ -52,9 +53,9 @@ func AttachHandlers(router *chi.Mux, downloader *universal.Downloader, torMgr *t log.Errorf("Failed to get traffic details: %v", err) trafficDetails = make(map[string]int64) } - hs.initialTraffic = 0 + hs.initialTraffic.Store(uint64(0)) if _, ok := trafficDetails["real-debrid.com"]; ok { - hs.initialTraffic = uint64(trafficDetails["real-debrid.com"]) + hs.initialTraffic.Store(uint64(trafficDetails["real-debrid.com"])) } if cfg.GetUsername() != "" {