Files
diun/vendor/github.com/dromara/carbon/v2/frozen.go
dependabot[bot] 001bc3a897 chore(deps): bump github.com/dromara/carbon/v2 from 2.6.11 to 2.6.14
Bumps [github.com/dromara/carbon/v2](https://github.com/dromara/carbon) from 2.6.11 to 2.6.14.
- [Release notes](https://github.com/dromara/carbon/releases)
- [Commits](https://github.com/dromara/carbon/compare/v2.6.11...v2.6.14)

---
updated-dependencies:
- dependency-name: github.com/dromara/carbon/v2
  dependency-version: 2.6.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-29 07:01:15 +00:00

43 lines
758 B
Go

package carbon
import (
"sync"
"sync/atomic"
)
// FrozenNow defines a FrozenNow struct.
type FrozenNow struct {
isFrozen int32
testNow *Carbon
rw sync.RWMutex
}
var frozenNow = &FrozenNow{}
// SetTestNow sets a test Carbon instance for now.
func SetTestNow(c *Carbon) {
if c == nil {
return
}
frozenNow.rw.Lock()
defer frozenNow.rw.Unlock()
frozenNow.testNow = c
atomic.StoreInt32(&frozenNow.isFrozen, 1)
}
// ClearTestNow clears the test Carbon instance for now.
func ClearTestNow() {
frozenNow.rw.Lock()
defer frozenNow.rw.Unlock()
frozenNow.testNow = nil
atomic.StoreInt32(&frozenNow.isFrozen, 0)
}
// IsTestNow reports whether is testing time.
func IsTestNow() bool {
return atomic.LoadInt32(&frozenNow.isFrozen) == 1
}