Files
diun/vendor/github.com/dromara/carbon/v2/frozen.go
dependabot[bot] 78bc93a3f8 chore(deps): bump github.com/dromara/carbon/v2 from 2.5.2 to 2.6.8
Bumps [github.com/dromara/carbon/v2](https://github.com/dromara/carbon) from 2.5.2 to 2.6.8.
- [Release notes](https://github.com/dromara/carbon/releases)
- [Commits](https://github.com/dromara/carbon/compare/v2.5.2...v2.6.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-14 23:03:54 +00:00

47 lines
884 B
Go

package carbon
import "sync"
// FrozenNow defines a FrozenNow struct.
type FrozenNow struct {
isFrozen bool
testNow *Carbon
rw *sync.RWMutex
}
var frozenNow = &FrozenNow{
rw: new(sync.RWMutex),
}
// SetTestNow sets a test Carbon instance for now.
func SetTestNow(c *Carbon) {
frozenNow.rw.Lock()
defer frozenNow.rw.Unlock()
frozenNow.isFrozen = true
frozenNow.testNow = c
}
// CleanTestNow clears the test Carbon instance for now.
//
// Deprecated: it will be removed in the future, use "ClearTestNow" instead.
func CleanTestNow() {
ClearTestNow()
}
// ClearTestNow clears the test Carbon instance for now.
func ClearTestNow() {
frozenNow.rw.Lock()
defer frozenNow.rw.Unlock()
frozenNow.isFrozen = false
}
// IsTestNow reports whether is testing time.
func IsTestNow() bool {
frozenNow.rw.Lock()
defer frozenNow.rw.Unlock()
return frozenNow.isFrozen
}