mattermost-community-enterp.../vendor/github.com/splitio/go-toolkit/v5/sync/atomicbool.go
Claude ec1f89217a Merge: Complete Mattermost Server with Community Enterprise
Full Mattermost server source with integrated Community Enterprise features.
Includes vendor directory for offline/air-gapped builds.

Structure:
- enterprise-impl/: Enterprise feature implementations
- enterprise-community/: Init files that register implementations
- enterprise/: Bridge imports (community_imports.go)
- vendor/: All dependencies for offline builds

Build (online):
  go build ./cmd/mattermost

Build (offline/air-gapped):
  go build -mod=vendor ./cmd/mattermost

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 23:59:07 +09:00

42 lines
728 B
Go

package sync
import (
"sync/atomic"
)
const (
falseValue = 0
trueValue = 1
)
type AtomicBool struct {
value uint32
}
func (b *AtomicBool) Set() {
atomic.StoreUint32(&b.value, trueValue)
}
func (b *AtomicBool) Unset() {
atomic.StoreUint32(&b.value, falseValue)
}
func (b *AtomicBool) IsSet() bool {
return atomic.LoadUint32(&b.value) == trueValue
}
func (b *AtomicBool) TestAndSet() bool {
return atomic.CompareAndSwapUint32(&b.value, falseValue, trueValue)
}
func (b *AtomicBool) TestAndClear() bool {
return atomic.CompareAndSwapUint32(&b.value, trueValue, falseValue)
}
func NewAtomicBool(initialValue bool) *AtomicBool {
if initialValue {
return &AtomicBool{value: trueValue}
}
return &AtomicBool{}
}