| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | package coreimport (	"sync"	"time")// Clock is a V2Ray feature that returns current time.type Clock interface {	Feature	// Now returns current time.	Now() time.Time}type syncClock struct {	sync.RWMutex	Clock}func (c *syncClock) Now() time.Time {	c.RLock()	defer c.RUnlock()	if c.Clock == nil {		return time.Now()	}	return c.Clock.Now()}func (c *syncClock) Start() error {	c.RLock()	defer c.RUnlock()	if c.Clock == nil {		return nil	}	return c.Clock.Start()}func (c *syncClock) Close() error {	c.RLock()	defer c.RUnlock()	if c.Clock == nil {		return nil	}	return c.Clock.Close()}func (c *syncClock) Set(clock Clock) {	c.Lock()	defer c.Unlock()	c.Clock = clock}
 |