mirror of
https://github.com/crazy-max/diun.git
synced 2025-12-25 14:59:33 +01:00
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>
43 lines
758 B
Go
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
|
|
}
|