diff --git a/testy/clock.go b/testy/clock.go index 5b364411b..9bf77530a 100644 --- a/testy/clock.go +++ b/testy/clock.go @@ -4,7 +4,10 @@ package testy -import "time" +import ( + "sync" + "time" +) // Clock is a testing clock that advances every time its Now method is // called, beginning at Start. @@ -18,11 +21,15 @@ type Clock struct { Step time.Duration // Present is the time that the next Now call will receive. Present time.Time + + sync.Mutex } // Now returns the virtual clock's current time, and avances it // according to its step configuration. func (c *Clock) Now() time.Time { + c.Lock() + defer c.Unlock() if c.Start.IsZero() { c.Start = time.Now() c.Present = c.Start @@ -35,5 +42,7 @@ func (c *Clock) Now() time.Time { // Reset rewinds the virtual clock to its start time. func (c *Clock) Reset() { + c.Lock() + defer c.Unlock() c.Present = c.Start }