mirror of https://github.com/daffainfo/nuclei.git
39 lines
448 B
Go
39 lines
448 B
Go
|
package atomicboolean
|
||
|
|
||
|
import (
|
||
|
"sync"
|
||
|
)
|
||
|
|
||
|
type AtomBool struct {
|
||
|
sync.RWMutex
|
||
|
flag bool
|
||
|
}
|
||
|
|
||
|
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()
|
||
|
|
||
|
return b.flag
|
||
|
}
|