|
|
|
@ -155,7 +155,6 @@ func doTraverseBfsAndSaving(filerClient filer_pb.FilerClient, writer io.Writer, |
|
|
|
}() |
|
|
|
|
|
|
|
var dirCount, fileCount uint64 |
|
|
|
var once sync.Once |
|
|
|
var firstErr error |
|
|
|
var hasErr atomic.Bool |
|
|
|
|
|
|
|
@ -176,10 +175,8 @@ func doTraverseBfsAndSaving(filerClient filer_pb.FilerClient, writer io.Writer, |
|
|
|
return firstErr |
|
|
|
} |
|
|
|
if genErr := genFn(protoMessage, outputChan); genErr != nil { |
|
|
|
once.Do(func() { |
|
|
|
firstErr = genErr |
|
|
|
hasErr.Store(true) |
|
|
|
}) |
|
|
|
firstErr = genErr |
|
|
|
hasErr.Store(true) |
|
|
|
return genErr |
|
|
|
} else { |
|
|
|
if e.IsDirectory { |
|
|
|
@ -208,11 +205,10 @@ func doTraverseBfsAndSaving(filerClient filer_pb.FilerClient, writer io.Writer, |
|
|
|
return firstErr |
|
|
|
} |
|
|
|
if genErr := genFn(protoMessage, outputChan); genErr != nil { |
|
|
|
once.Do(func() { |
|
|
|
if hasErr.CompareAndSwap(false, true) { |
|
|
|
firstErr = genErr |
|
|
|
hasErr.Store(true) |
|
|
|
cancel() |
|
|
|
}) |
|
|
|
} |
|
|
|
return genErr |
|
|
|
} |
|
|
|
|
|
|
|
|