Browse Source

增加功能函数

pull/47/head
Sydonian 1 year ago
parent
commit
610a39b66e
2 changed files with 13 additions and 5 deletions
  1. +4
    -0
      sdks/storage/models.go
  2. +9
    -5
      utils/sync2/sync2.go

+ 4
- 0
sdks/storage/models.go View File

@@ -128,6 +128,10 @@ type Node struct {
LastReportTime *time.Time `db:"LastReportTime" json:"lastReportTime"`
}

func (n Node) String() string {
return fmt.Sprintf("%v(%v)", n.Name, n.NodeID)
}

type PinnedObject struct {
ObjectID ObjectID `db:"ObjectID" json:"objectID"`
NodeID NodeID `db:"NodeID" json:"nodeID"`


+ 9
- 5
utils/sync2/sync2.go View File

@@ -2,12 +2,11 @@ package sync2

import (
"sync"
"sync/atomic"
)

func ParallelDo[T any](args []T, fn func(val T, index int) error) error {
err := atomic.Value{}
err.Store((error)(nil))
lock := sync.Mutex{}
var err error

var wg sync.WaitGroup
wg.Add(len(args))
@@ -16,10 +15,15 @@ func ParallelDo[T any](args []T, fn func(val T, index int) error) error {
defer wg.Done()

if e := fn(arg, index); e != nil {
err.CompareAndSwap((error)(nil), e)
lock.Lock()
if err == nil {
err = e
}
lock.Unlock()
}
}(arg, i)
}
wg.Wait()
return err.Load().(error)

return err
}

Loading…
Cancel
Save