summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorWolfy-J <[email protected]>2019-01-05 15:51:15 +0300
committerWolfy-J <[email protected]>2019-01-05 15:51:15 +0300
commit6f1a668f5d67bc81d1ac26be84620dc5c87e1581 (patch)
tree2208fb4c411f200e666694e35ef6eb48b3c5abc8 /util
parent94f4083b1d85d0a45b48cbf80d83e3049c30096e (diff)
override config flags
Diffstat (limited to 'util')
-rw-r--r--util/fasttime.go41
-rw-r--r--util/fasttime_test.go47
2 files changed, 0 insertions, 88 deletions
diff --git a/util/fasttime.go b/util/fasttime.go
deleted file mode 100644
index f1a81333..00000000
--- a/util/fasttime.go
+++ /dev/null
@@ -1,41 +0,0 @@
-package util
-
-import (
- "sync/atomic"
- "time"
-)
-
-// FastTime provides current unix time using specified resolution with reduced number of syscalls.
-type FastTime struct {
- last int64
- ticker *time.Ticker
-}
-
-// NewFastTime returns new time provider with given resolution.
-func NewFastTime(resolution time.Duration) *FastTime {
- ft := &FastTime{
- last: time.Now().UnixNano(),
- ticker: time.NewTicker(resolution),
- }
-
- go ft.run()
-
- return ft
-}
-
-// Stop ticking.
-func (ft *FastTime) Stop() {
- ft.ticker.Stop()
-}
-
-// UnixNano returns current timestamps. Value might be delayed after current time by specified resolution.
-func (ft *FastTime) UnixNano() int64 {
- return atomic.LoadInt64(&ft.last)
-}
-
-// consume time values over given resolution.
-func (ft *FastTime) run() {
- for range ft.ticker.C {
- atomic.StoreInt64(&ft.last, time.Now().UnixNano())
- }
-}
diff --git a/util/fasttime_test.go b/util/fasttime_test.go
deleted file mode 100644
index c8ff0e13..00000000
--- a/util/fasttime_test.go
+++ /dev/null
@@ -1,47 +0,0 @@
-package util
-
-import (
- "github.com/stretchr/testify/assert"
- "testing"
- "time"
-)
-
-func TestFTime_UnixNano(t *testing.T) {
- ft := NewFastTime(time.Millisecond)
- defer ft.Stop()
-
- var d int64
-
- d = time.Now().UnixNano() - ft.UnixNano()
-
- assert.True(t, d >= 0)
- assert.True(t, d <= int64(time.Millisecond*2))
-
- time.Sleep(time.Millisecond * 100)
- d = time.Now().UnixNano() - ft.UnixNano()
-
- assert.True(t, d >= 0)
- assert.True(t, d <= int64(time.Millisecond*2))
-}
-
-func Benchmark_FastTime(b *testing.B) {
- ft := NewFastTime(time.Microsecond)
- defer ft.Stop()
-
- b.ReportAllocs()
-
- for n := 0; n < b.N; n++ {
- _ = ft.UnixNano()
- }
-}
-
-func Benchmark_Time(b *testing.B) {
- ft := NewFastTime(time.Microsecond)
- defer ft.Stop()
-
- b.ReportAllocs()
-
- for n := 0; n < b.N; n++ {
- _ = time.Now().UnixNano()
- }
-}