forked from wrenn/wrenn
Prototype with single host server and no admin panel (#2)
Reviewed-on: wrenn/sandbox#2 Co-authored-by: pptx704 <rafeed@omukk.dev> Co-committed-by: pptx704 <rafeed@omukk.dev>
This commit is contained in:
29
envd/internal/utils/atomic.go
Normal file
29
envd/internal/utils/atomic.go
Normal file
@ -0,0 +1,29 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package utils
|
||||
|
||||
import (
|
||||
"sync"
|
||||
)
|
||||
|
||||
type AtomicMax struct {
|
||||
val int64
|
||||
mu sync.Mutex
|
||||
}
|
||||
|
||||
func NewAtomicMax() *AtomicMax {
|
||||
return &AtomicMax{}
|
||||
}
|
||||
|
||||
func (a *AtomicMax) SetToGreater(newValue int64) bool {
|
||||
a.mu.Lock()
|
||||
defer a.mu.Unlock()
|
||||
|
||||
if a.val > newValue {
|
||||
return false
|
||||
}
|
||||
|
||||
a.val = newValue
|
||||
|
||||
return true
|
||||
}
|
||||
Reference in New Issue
Block a user