core: Fix race detected by go race detector

s3-about
Nick Craig-Wood 2014-07-22 23:03:14 +01:00
parent a75bc0703f
commit e09ef62d5b
2 changed files with 7 additions and 6 deletions

View File

@ -4,7 +4,6 @@ package fs
import (
"fmt"
"log"
"sync"
)
@ -225,12 +224,10 @@ func Copier(in ObjectPairChan, fdst Fs, wg *sync.WaitGroup) {
func DeleteFiles(to_be_deleted ObjectsChan) {
var wg sync.WaitGroup
wg.Add(Config.Transfers)
var fs Fs
for i := 0; i < Config.Transfers; i++ {
go func() {
defer wg.Done()
for dst := range to_be_deleted {
fs = dst.Fs()
if Config.DryRun {
Debug(dst, "Not deleting as --dry-run")
} else {
@ -247,8 +244,7 @@ func DeleteFiles(to_be_deleted ObjectsChan) {
}
}()
}
Log(fs, "Waiting for deletions to finish")
Log(nil, "Waiting for deletions to finish")
wg.Wait()
}
@ -520,7 +516,6 @@ func Purge(f Fs) error {
}
} else {
DeleteFiles(f.List())
log.Printf("Deleting path")
Rmdir(f)
}
return nil

View File

@ -3,6 +3,12 @@ Remove FIXME skipping directory
Change lsd command so it doesn't show -1
* Make sure all Fses show -1 for objects Zero for dates etc
Make unit tests for the fses
* Make them try to load a TestFSName config
* Then do a proper unit test of each one
* If there is no TestFSName config it should exit quietly
* However the Local FS should default to a tmpdir
Todo
* FIXME: More -dry-run checks for object transfer
* Might be quicker to check md5sums first? for swift <-> swift certainly, and maybe for small files