reset tracking variables after start scan
forgot about this when i admin and subsonic handlers reuse the same scanner struct
This commit is contained in:
@@ -30,11 +30,9 @@ func IsScanning() bool {
|
|||||||
return atomic.LoadInt32(&isScanning) == 1
|
return atomic.LoadInt32(&isScanning) == 1
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetScanning(status bool) {
|
func SetScanning() func() {
|
||||||
switch {
|
atomic.StoreInt32(&isScanning, 1)
|
||||||
case status:
|
return func() {
|
||||||
atomic.StoreInt32(&isScanning, 1)
|
|
||||||
default:
|
|
||||||
atomic.StoreInt32(&isScanning, 0)
|
atomic.StoreInt32(&isScanning, 0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -74,8 +72,16 @@ func (s *Scanner) Start() error {
|
|||||||
if IsScanning() {
|
if IsScanning() {
|
||||||
return errors.New("already scanning")
|
return errors.New("already scanning")
|
||||||
}
|
}
|
||||||
SetScanning(true)
|
unSet := SetScanning()
|
||||||
defer SetScanning(false)
|
defer unSet()
|
||||||
|
// reset tracking variables when finished
|
||||||
|
defer func() {
|
||||||
|
s.seenTracks = make(map[int]struct{})
|
||||||
|
s.seenFolders = make(map[int]struct{})
|
||||||
|
s.curFolders = &stack.Stack{}
|
||||||
|
s.seenTracksNew = 0
|
||||||
|
s.seenTracksErr = 0
|
||||||
|
}()
|
||||||
//
|
//
|
||||||
// being walking
|
// being walking
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
|
|||||||
Reference in New Issue
Block a user