mirror of
https://github.com/yusing/godoxy.git
synced 2026-01-11 22:30:47 +01:00
refactor(concurrency): replaced manual WaitGroup management with new wg.Go() and removed redundant code.
This commit is contained in:
@@ -23,11 +23,9 @@ import (
|
||||
func parallel(fns ...func()) {
|
||||
var wg sync.WaitGroup
|
||||
for _, fn := range fns {
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
wg.Go(func() {
|
||||
fn()
|
||||
}()
|
||||
})
|
||||
}
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ import (
|
||||
func NewHandler() *gin.Engine {
|
||||
gin.SetMode("release")
|
||||
r := gin.New()
|
||||
r.Use(NoCache())
|
||||
r.Use(ErrorHandler())
|
||||
r.Use(ErrorLoggingMiddleware())
|
||||
|
||||
@@ -113,6 +114,15 @@ func NewHandler() *gin.Engine {
|
||||
return r
|
||||
}
|
||||
|
||||
func NoCache() gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
c.Header("Cache-Control", "no-cache, no-store, must-revalidate")
|
||||
c.Header("Pragma", "no-cache")
|
||||
c.Header("Expires", "0")
|
||||
c.Next()
|
||||
}
|
||||
}
|
||||
|
||||
func AuthMiddleware() gin.HandlerFunc {
|
||||
if !auth.IsEnabled() {
|
||||
return func(c *gin.Context) {
|
||||
|
||||
@@ -79,39 +79,29 @@ func getSystemInfo(ctx context.Context, lastResult *SystemInfo) (*SystemInfo, er
|
||||
var wg sync.WaitGroup
|
||||
|
||||
if !common.MetricsDisableCPU {
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
wg.Go(func() {
|
||||
errs.Add(s.collectCPUInfo(ctx))
|
||||
}()
|
||||
})
|
||||
}
|
||||
if !common.MetricsDisableMemory {
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
wg.Go(func() {
|
||||
errs.Add(s.collectMemoryInfo(ctx))
|
||||
}()
|
||||
})
|
||||
}
|
||||
if !common.MetricsDisableDisk {
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
wg.Go(func() {
|
||||
errs.Add(s.collectDisksInfo(ctx, lastResult))
|
||||
}()
|
||||
})
|
||||
}
|
||||
if !common.MetricsDisableNetwork {
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
wg.Go(func() {
|
||||
errs.Add(s.collectNetworkInfo(ctx, lastResult))
|
||||
}()
|
||||
})
|
||||
}
|
||||
if !common.MetricsDisableSensors {
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
wg.Go(func() {
|
||||
errs.Add(s.collectSensorsInfo(ctx))
|
||||
}()
|
||||
})
|
||||
}
|
||||
wg.Wait()
|
||||
|
||||
|
||||
@@ -130,10 +130,9 @@ func TestFinishMultipleCalls(t *testing.T) {
|
||||
n := 20
|
||||
wg.Add(n)
|
||||
for range n {
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
wg.Go(func() {
|
||||
task.Finish(nil)
|
||||
}()
|
||||
})
|
||||
}
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
@@ -62,15 +62,13 @@ func (m Map[KT, VT]) RangeAllParallel(do func(k KT, v VT)) {
|
||||
}
|
||||
|
||||
var wg sync.WaitGroup
|
||||
|
||||
m.Range(func(k KT, v VT) bool {
|
||||
for k, v := range m.Range {
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
go func(k KT, v VT) {
|
||||
defer wg.Done()
|
||||
do(k, v)
|
||||
wg.Done()
|
||||
}()
|
||||
return true
|
||||
})
|
||||
}(k, v)
|
||||
}
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package functional
|
||||
|
||||
import (
|
||||
"sync"
|
||||
|
||||
"github.com/puzpuzpuz/xsync/v4"
|
||||
)
|
||||
|
||||
@@ -44,20 +42,6 @@ func (set Set[T]) RangeAll(f func(T)) {
|
||||
})
|
||||
}
|
||||
|
||||
func (set Set[T]) RangeAllParallel(f func(T)) {
|
||||
var wg sync.WaitGroup
|
||||
|
||||
set.Range(func(k T) bool {
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
f(k)
|
||||
wg.Done()
|
||||
}()
|
||||
return true
|
||||
})
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
func (set Set[T]) Size() int {
|
||||
return set.m.Size()
|
||||
}
|
||||
|
||||
@@ -92,16 +92,15 @@ func NewBidirectionalPipe(ctx context.Context, rw1 io.ReadWriteCloser, rw2 io.Re
|
||||
|
||||
func (p BidirectionalPipe) Start() error {
|
||||
var wg sync.WaitGroup
|
||||
wg.Add(2)
|
||||
var srcErr, dstErr error
|
||||
go func() {
|
||||
wg.Go(func() {
|
||||
srcErr = p.pSrcDst.Start()
|
||||
wg.Done()
|
||||
}()
|
||||
go func() {
|
||||
})
|
||||
wg.Go(func() {
|
||||
dstErr = p.pDstSrc.Start()
|
||||
wg.Done()
|
||||
}()
|
||||
})
|
||||
wg.Wait()
|
||||
return errors.Join(srcErr, dstErr)
|
||||
}
|
||||
|
||||
@@ -12,14 +12,12 @@ func TestRefCounterAddSub(t *testing.T) {
|
||||
rc := NewRefCounter() // Count starts at 1
|
||||
|
||||
var wg sync.WaitGroup
|
||||
wg.Add(2)
|
||||
|
||||
rc.Add()
|
||||
for range 2 {
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
wg.Go(func() {
|
||||
rc.Sub()
|
||||
}()
|
||||
})
|
||||
}
|
||||
|
||||
wg.Wait()
|
||||
|
||||
Reference in New Issue
Block a user