| 1234567891011121314151617181920212223242526272829303132333435363738 |
- // package life_time -- глобальный счётчик древности записи в паамяти
- package life_time
- import (
- "math"
- "sync"
- "git.p78su.freemyip.com/svi/gostore/pkg/types"
- )
- // LifeTime -- глобальный счётчик древности записи в паамяти
- type LifeTime struct {
- timeLife int // Глобальный счётчик
- block sync.Mutex
- }
- // NewLifeTime -- возвращает новый глобальный счётчик
- func NewLifeTime() types.ILifeTime {
- sf := &LifeTime{
- timeLife: math.MaxInt,
- }
- return sf
- }
- // Next -- возвращает следующую метку времени и признак перебора
- func (sf *LifeTime) Next() int {
- sf.block.Lock()
- defer sf.block.Unlock()
- sf.timeLife--
- defer func() {
- if sf.timeLife <= 0 {
- sf.timeLife = math.MaxInt
- }
- }()
- return sf.timeLife
- }
|