build(deps): bump golang.org/x/sync from 0.6.0 to 0.7.0 (#8974)
Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.6.0 to 0.7.0. - [Commits](https://github.com/golang/sync/compare/v0.6.0...v0.7.0) --- updated-dependencies: - dependency-name: golang.org/x/sync dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
parent
e8c3045391
commit
6cefbb9368
@@ -104,7 +104,7 @@ require (
|
|||||||
golang.org/x/image v0.15.0
|
golang.org/x/image v0.15.0
|
||||||
golang.org/x/net v0.24.0
|
golang.org/x/net v0.24.0
|
||||||
golang.org/x/oauth2 v0.19.0
|
golang.org/x/oauth2 v0.19.0
|
||||||
golang.org/x/sync v0.6.0
|
golang.org/x/sync v0.7.0
|
||||||
golang.org/x/term v0.19.0
|
golang.org/x/term v0.19.0
|
||||||
golang.org/x/text v0.14.0
|
golang.org/x/text v0.14.0
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de
|
google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de
|
||||||
|
|||||||
@@ -2377,8 +2377,8 @@ golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJ
|
|||||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
|
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
|
||||||
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
|
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
|
||||||
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||||
golang.org/x/sys v0.0.0-20180622082034-63fc586f45fe/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180622082034-63fc586f45fe/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
|||||||
+33
-9
@@ -35,11 +35,25 @@ type Weighted struct {
|
|||||||
// Acquire acquires the semaphore with a weight of n, blocking until resources
|
// Acquire acquires the semaphore with a weight of n, blocking until resources
|
||||||
// are available or ctx is done. On success, returns nil. On failure, returns
|
// are available or ctx is done. On success, returns nil. On failure, returns
|
||||||
// ctx.Err() and leaves the semaphore unchanged.
|
// ctx.Err() and leaves the semaphore unchanged.
|
||||||
//
|
|
||||||
// If ctx is already done, Acquire may still succeed without blocking.
|
|
||||||
func (s *Weighted) Acquire(ctx context.Context, n int64) error {
|
func (s *Weighted) Acquire(ctx context.Context, n int64) error {
|
||||||
|
done := ctx.Done()
|
||||||
|
|
||||||
s.mu.Lock()
|
s.mu.Lock()
|
||||||
|
select {
|
||||||
|
case <-done:
|
||||||
|
// ctx becoming done has "happened before" acquiring the semaphore,
|
||||||
|
// whether it became done before the call began or while we were
|
||||||
|
// waiting for the mutex. We prefer to fail even if we could acquire
|
||||||
|
// the mutex without blocking.
|
||||||
|
s.mu.Unlock()
|
||||||
|
return ctx.Err()
|
||||||
|
default:
|
||||||
|
}
|
||||||
if s.size-s.cur >= n && s.waiters.Len() == 0 {
|
if s.size-s.cur >= n && s.waiters.Len() == 0 {
|
||||||
|
// Since we hold s.mu and haven't synchronized since checking done, if
|
||||||
|
// ctx becomes done before we return here, it becoming done must have
|
||||||
|
// "happened concurrently" with this call - it cannot "happen before"
|
||||||
|
// we return in this branch. So, we're ok to always acquire here.
|
||||||
s.cur += n
|
s.cur += n
|
||||||
s.mu.Unlock()
|
s.mu.Unlock()
|
||||||
return nil
|
return nil
|
||||||
@@ -48,7 +62,7 @@ func (s *Weighted) Acquire(ctx context.Context, n int64) error {
|
|||||||
if n > s.size {
|
if n > s.size {
|
||||||
// Don't make other Acquire calls block on one that's doomed to fail.
|
// Don't make other Acquire calls block on one that's doomed to fail.
|
||||||
s.mu.Unlock()
|
s.mu.Unlock()
|
||||||
<-ctx.Done()
|
<-done
|
||||||
return ctx.Err()
|
return ctx.Err()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,14 +72,14 @@ func (s *Weighted) Acquire(ctx context.Context, n int64) error {
|
|||||||
s.mu.Unlock()
|
s.mu.Unlock()
|
||||||
|
|
||||||
select {
|
select {
|
||||||
case <-ctx.Done():
|
case <-done:
|
||||||
err := ctx.Err()
|
|
||||||
s.mu.Lock()
|
s.mu.Lock()
|
||||||
select {
|
select {
|
||||||
case <-ready:
|
case <-ready:
|
||||||
// Acquired the semaphore after we were canceled. Rather than trying to
|
// Acquired the semaphore after we were canceled.
|
||||||
// fix up the queue, just pretend we didn't notice the cancelation.
|
// Pretend we didn't and put the tokens back.
|
||||||
err = nil
|
s.cur -= n
|
||||||
|
s.notifyWaiters()
|
||||||
default:
|
default:
|
||||||
isFront := s.waiters.Front() == elem
|
isFront := s.waiters.Front() == elem
|
||||||
s.waiters.Remove(elem)
|
s.waiters.Remove(elem)
|
||||||
@@ -75,9 +89,19 @@ func (s *Weighted) Acquire(ctx context.Context, n int64) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
s.mu.Unlock()
|
s.mu.Unlock()
|
||||||
return err
|
return ctx.Err()
|
||||||
|
|
||||||
case <-ready:
|
case <-ready:
|
||||||
|
// Acquired the semaphore. Check that ctx isn't already done.
|
||||||
|
// We check the done channel instead of calling ctx.Err because we
|
||||||
|
// already have the channel, and ctx.Err is O(n) with the nesting
|
||||||
|
// depth of ctx.
|
||||||
|
select {
|
||||||
|
case <-done:
|
||||||
|
s.Release(n)
|
||||||
|
return ctx.Err()
|
||||||
|
default:
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+1
-1
@@ -2112,7 +2112,7 @@ golang.org/x/net/trace
|
|||||||
## explicit; go 1.18
|
## explicit; go 1.18
|
||||||
golang.org/x/oauth2
|
golang.org/x/oauth2
|
||||||
golang.org/x/oauth2/internal
|
golang.org/x/oauth2/internal
|
||||||
# golang.org/x/sync v0.6.0
|
# golang.org/x/sync v0.7.0
|
||||||
## explicit; go 1.18
|
## explicit; go 1.18
|
||||||
golang.org/x/sync/errgroup
|
golang.org/x/sync/errgroup
|
||||||
golang.org/x/sync/semaphore
|
golang.org/x/sync/semaphore
|
||||||
|
|||||||
Reference in New Issue
Block a user