package utils

import (
	
	
	
)

var (
	timestampTimer sync.Once
	// Timestamp please start the timer function before you use this value
	// please load the value with atomic `atomic.LoadUint32(&utils.Timestamp)`
	Timestamp uint32
)

// StartTimeStampUpdater starts a concurrent function which stores the timestamp to an atomic value per second,
// which is much better for performance than determining it at runtime each time
func () {
	timestampTimer.Do(func() {
		// set initial value
		atomic.StoreUint32(&Timestamp, uint32(time.Now().Unix()))
		go func( time.Duration) {
			 := time.NewTicker()
			defer .Stop()

			for  := range .C {
				// update timestamp
				atomic.StoreUint32(&Timestamp, uint32(.Unix()))
			}
		}(1 * time.Second) // duration
	})
}