nuclei/v2/pkg/atomicboolean/bool.go

43 lines
503 B
Go
Raw Normal View History

2020-07-24 16:12:16 +00:00
package atomicboolean
import (
"sync"
)
type AtomBool struct {
sync.RWMutex
flag bool
}
2020-10-17 00:10:47 +00:00
func New() *AtomBool {
return &AtomBool{}
}
2020-07-24 16:12:16 +00:00
func (b *AtomBool) Or(value bool) {
b.Lock()
defer b.Unlock()
b.flag = b.flag || value
}
func (b *AtomBool) And(value bool) {
b.Lock()
defer b.Unlock()
b.flag = b.flag && value
}
func (b *AtomBool) Set(value bool) {
b.Lock()
defer b.Unlock()
b.flag = value
}
func (b *AtomBool) Get() bool {
b.RLock()
defer b.RUnlock() //nolint
2020-07-24 16:12:16 +00:00
return b.flag
}