From b3ba1516a78cba2144c517d78b7c39b536a0ed59 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 14:33:51 +0000 Subject: [PATCH] [chore]: Bump codeberg.org/gruf/go-mutexes from 1.3.1 to 1.4.0 (#2562) Bumps codeberg.org/gruf/go-mutexes from 1.3.1 to 1.4.0. --- updated-dependencies: - dependency-name: codeberg.org/gruf/go-mutexes dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 +- vendor/codeberg.org/gruf/go-mutexes/cond.go | 87 +++++++++++++++++++++ vendor/codeberg.org/gruf/go-mutexes/map.go | 35 --------- vendor/modules.txt | 2 +- 5 files changed, 91 insertions(+), 39 deletions(-) create mode 100644 vendor/codeberg.org/gruf/go-mutexes/cond.go diff --git a/go.mod b/go.mod index 1ac0bb4a3..c4e3ab25a 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( codeberg.org/gruf/go-iotools v0.0.0-20230811115124-5d4223615a7f codeberg.org/gruf/go-kv v1.6.4 codeberg.org/gruf/go-logger/v2 v2.2.1 - codeberg.org/gruf/go-mutexes v1.3.1 + codeberg.org/gruf/go-mutexes v1.4.0 codeberg.org/gruf/go-runners v1.6.2 codeberg.org/gruf/go-sched v1.2.3 codeberg.org/gruf/go-store/v2 v2.2.4 diff --git a/go.sum b/go.sum index 2de163572..2f2bc4e73 100644 --- a/go.sum +++ b/go.sum @@ -62,8 +62,8 @@ codeberg.org/gruf/go-mangler v1.2.3 h1:sj0dey2lF5GRQL7fXmCY0wPNaI5JrROiThb0VDbzF codeberg.org/gruf/go-mangler v1.2.3/go.mod h1:X/7URkFhLBAVKkTxmqF11Oxw3A6pSSxgPeHssQaiq28= codeberg.org/gruf/go-maps v1.0.3 h1:VDwhnnaVNUIy5O93CvkcE2IZXnMB1+IJjzfop9V12es= codeberg.org/gruf/go-maps v1.0.3/go.mod h1:D5LNDxlC9rsDuVQVM6JObaVGAdHB6g2dTdOdkh1aXWA= -codeberg.org/gruf/go-mutexes v1.3.1 h1:8ibAjWwx08GJSq5R+lM9nwtJw2aAhMPKSXbfJ9EpDsA= -codeberg.org/gruf/go-mutexes v1.3.1/go.mod h1:1j/6/MBeBQUedAtAtysLLnBKogfOZAxdym0E3wlaBD8= +codeberg.org/gruf/go-mutexes v1.4.0 h1:53H6bFDRcG6rjk3iOTuGaStT/VTFdU5Uw8Dszy88a8g= +codeberg.org/gruf/go-mutexes v1.4.0/go.mod h1:1j/6/MBeBQUedAtAtysLLnBKogfOZAxdym0E3wlaBD8= codeberg.org/gruf/go-runners v1.6.2 h1:oQef9niahfHu/wch14xNxlRMP8i+ABXH1Cb9PzZ4oYo= codeberg.org/gruf/go-runners v1.6.2/go.mod h1:Tq5PrZ/m/rBXbLZz0u5if+yP3nG5Sf6S8O/GnyEePeQ= codeberg.org/gruf/go-sched v1.2.3 h1:H5ViDxxzOBR3uIyGBCf0eH8b1L8wMybOXcdtUUTXZHk= diff --git a/vendor/codeberg.org/gruf/go-mutexes/cond.go b/vendor/codeberg.org/gruf/go-mutexes/cond.go new file mode 100644 index 000000000..d89040c02 --- /dev/null +++ b/vendor/codeberg.org/gruf/go-mutexes/cond.go @@ -0,0 +1,87 @@ +package mutexes + +import ( + "sync" + "unsafe" +) + +// Cond is similar to a sync.Cond{}, but +// it encompasses the Mutex{} within itself. +type Cond struct { + notify notifyList + sync.Mutex +} + +// See: sync.Cond{}.Wait(). +func (c *Cond) Wait() { + t := runtime_notifyListAdd(&c.notify) + c.Mutex.Unlock() + runtime_notifyListWait(&c.notify, t) + c.Mutex.Lock() +} + +// See: sync.Cond{}.Signal(). +func (c *Cond) Signal() { runtime_notifyListNotifyOne(&c.notify) } + +// See: sync.Cond{}.Broadcast(). +func (c *Cond) Broadcast() { runtime_notifyListNotifyAll(&c.notify) } + +// RWCond is similar to a sync.Cond{}, but +// it encompasses the RWMutex{} within itself. +type RWCond struct { + notify notifyList + sync.RWMutex +} + +// See: sync.Cond{}.Wait(). +func (c *RWCond) Wait() { + t := runtime_notifyListAdd(&c.notify) + c.RWMutex.Unlock() + runtime_notifyListWait(&c.notify, t) + c.RWMutex.Lock() +} + +// See: sync.Cond{}.Signal(). +func (c *RWCond) Signal() { runtime_notifyListNotifyOne(&c.notify) } + +// See: sync.Cond{}.Broadcast(). +func (c *RWCond) Broadcast() { runtime_notifyListNotifyAll(&c.notify) } + +// unused fields left +// un-named for safety. +type notifyList struct { + _ uint32 // wait uint32 + notify uint32 // notify uint32 + _ uintptr // lock mutex + _ unsafe.Pointer // head *sudog + _ unsafe.Pointer // tail *sudog +} + +// See runtime/sema.go for documentation. +// +//go:linkname runtime_notifyListAdd sync.runtime_notifyListAdd +func runtime_notifyListAdd(l *notifyList) uint32 + +// See runtime/sema.go for documentation. +// +//go:linkname runtime_notifyListWait sync.runtime_notifyListWait +func runtime_notifyListWait(l *notifyList, t uint32) + +// See runtime/sema.go for documentation. +// +//go:linkname runtime_notifyListNotifyOne sync.runtime_notifyListNotifyOne +func runtime_notifyListNotifyOne(l *notifyList) + +// See runtime/sema.go for documentation. +// +//go:linkname runtime_notifyListNotifyAll sync.runtime_notifyListNotifyAll +func runtime_notifyListNotifyAll(l *notifyList) + +// Ensure that sync and runtime agree on size of notifyList. +// +//go:linkname runtime_notifyListCheck sync.runtime_notifyListCheck +func runtime_notifyListCheck(size uintptr) +func init() { + var n notifyList + runtime_notifyListCheck(unsafe.Sizeof(n)) +} diff --git a/vendor/codeberg.org/gruf/go-mutexes/map.go b/vendor/codeberg.org/gruf/go-mutexes/map.go index 8a73a96d9..e61ef3537 100644 --- a/vendor/codeberg.org/gruf/go-mutexes/map.go +++ b/vendor/codeberg.org/gruf/go-mutexes/map.go @@ -3,7 +3,6 @@ package mutexes import ( "sync" "sync/atomic" - "unsafe" ) const ( @@ -250,37 +249,3 @@ func (mu *rwmutex) WaitRelock(outer *sync.Mutex) { // Relock! outer.Lock() } - -// unused fields left -// un-named for safety. -type notifyList struct { - _ uint32 // wait uint32 - notify uint32 // notify uint32 - _ uintptr // lock mutex - _ unsafe.Pointer // head *sudog - _ unsafe.Pointer // tail *sudog -} - -// See runtime/sema.go for documentation. -// -//go:linkname runtime_notifyListAdd sync.runtime_notifyListAdd -func runtime_notifyListAdd(l *notifyList) uint32 - -// See runtime/sema.go for documentation. -// -//go:linkname runtime_notifyListWait sync.runtime_notifyListWait -func runtime_notifyListWait(l *notifyList, t uint32) - -// See runtime/sema.go for documentation. -// -//go:linkname runtime_notifyListNotifyAll sync.runtime_notifyListNotifyAll -func runtime_notifyListNotifyAll(l *notifyList) - -// Ensure that sync and runtime agree on size of notifyList. -// -//go:linkname runtime_notifyListCheck sync.runtime_notifyListCheck -func runtime_notifyListCheck(size uintptr) -func init() { - var n notifyList - runtime_notifyListCheck(unsafe.Sizeof(n)) -} diff --git a/vendor/modules.txt b/vendor/modules.txt index d7a945da1..e721bfff3 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -46,7 +46,7 @@ codeberg.org/gruf/go-mangler # codeberg.org/gruf/go-maps v1.0.3 ## explicit; go 1.19 codeberg.org/gruf/go-maps -# codeberg.org/gruf/go-mutexes v1.3.1 +# codeberg.org/gruf/go-mutexes v1.4.0 ## explicit; go 1.14 codeberg.org/gruf/go-mutexes # codeberg.org/gruf/go-runners v1.6.2