From a5352a067ee4e39f5c7682f72959681bba59ffa2 Mon Sep 17 00:00:00 2001 From: orestonce Date: Sat, 18 Nov 2023 11:06:39 +0800 Subject: [PATCH] fix3 --- api.go | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/api.go b/api.go index b46b74a..d6faf98 100644 --- a/api.go +++ b/api.go @@ -7,7 +7,6 @@ import ( "sort" "strings" "sync" - "sync/atomic" ) var gMergeStatus SpeedStatus @@ -19,13 +18,25 @@ type MergeTsDir_Resp struct { IsCancel bool } -var gMergeIsRunning atomic.Bool +var gMergeIsRunning bool +var gMergeIsRunningLocker sync.Mutex func MergeTsDir(InputTsDir string, OutputMp4Name string) (resp MergeTsDir_Resp) { - if !gMergeIsRunning.CompareAndSwap(false, true) { - return resp + { + gMergeIsRunningLocker.Lock() + defer gMergeIsRunningLocker.Unlock() + + if gMergeIsRunning != false { + return resp + } + gMergeIsRunning = true } - defer gMergeIsRunning.Store(false) + + defer func() { + gMergeIsRunningLocker.Lock() + gMergeIsRunning = false + gMergeIsRunningLocker.Unlock() + }() fList, err := ioutil.ReadDir(InputTsDir) if err != nil {