forked from TrueCloudLab/restic
Small refactorings
* use uint instead of uint32 in packs/indexes * use ID.Str() for debug messages * add ParallelIDWorkFunc
This commit is contained in:
parent
2cb0fbf589
commit
d42ff509ba
3 changed files with 25 additions and 8 deletions
|
@ -20,6 +20,10 @@ func closeIfOpen(ch chan struct{}) {
|
|||
// processing stops. If done is closed, the function should return.
|
||||
type ParallelWorkFunc func(id string, done <-chan struct{}) error
|
||||
|
||||
// ParallelIDWorkFunc gets one backend.ID to work on. If an error is returned,
|
||||
// processing stops. If done is closed, the function should return.
|
||||
type ParallelIDWorkFunc func(id backend.ID, done <-chan struct{}) error
|
||||
|
||||
// FilesInParallel runs n workers of f in parallel, on the IDs that
|
||||
// repo.List(t) yield. If f returns an error, the process is aborted and the
|
||||
// first error is returned.
|
||||
|
@ -69,3 +73,16 @@ func FilesInParallel(repo backend.Lister, t backend.Type, n uint, f ParallelWork
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
// ParallelWorkFuncParseID converts a function that takes a backend.ID to a
|
||||
// function that takes a string.
|
||||
func ParallelWorkFuncParseID(f ParallelIDWorkFunc) ParallelWorkFunc {
|
||||
return func(s string, done <-chan struct{}) error {
|
||||
id, err := backend.ParseID(s)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return f(id, done)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue