aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/aristanetworks/goarista/monotime/nanotime.go
diff options
context:
space:
mode:
authorZsolt Felfoldi <zsfelfoldi@gmail.com>2016-10-14 11:51:29 +0800
committerFelix Lange <fjl@twurst.com>2016-11-09 09:12:53 +0800
commit9f8d192991c4f68fa14c91366722bbca601da117 (patch)
tree5c1e089673d3f0208cd4a8208623bb95f29622c9 /vendor/github.com/aristanetworks/goarista/monotime/nanotime.go
parent760fd65487614b7a61443cd9371015925795f40f (diff)
downloadgo-tangerine-9f8d192991c4f68fa14c91366722bbca601da117.tar
go-tangerine-9f8d192991c4f68fa14c91366722bbca601da117.tar.gz
go-tangerine-9f8d192991c4f68fa14c91366722bbca601da117.tar.bz2
go-tangerine-9f8d192991c4f68fa14c91366722bbca601da117.tar.lz
go-tangerine-9f8d192991c4f68fa14c91366722bbca601da117.tar.xz
go-tangerine-9f8d192991c4f68fa14c91366722bbca601da117.tar.zst
go-tangerine-9f8d192991c4f68fa14c91366722bbca601da117.zip
les: light client protocol and API
Diffstat (limited to 'vendor/github.com/aristanetworks/goarista/monotime/nanotime.go')
-rw-r--r--vendor/github.com/aristanetworks/goarista/monotime/nanotime.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/vendor/github.com/aristanetworks/goarista/monotime/nanotime.go b/vendor/github.com/aristanetworks/goarista/monotime/nanotime.go
new file mode 100644
index 000000000..efc1b92a6
--- /dev/null
+++ b/vendor/github.com/aristanetworks/goarista/monotime/nanotime.go
@@ -0,0 +1,24 @@
+// Copyright (C) 2016 Arista Networks, Inc.
+// Use of this source code is governed by the Apache License 2.0
+// that can be found in the COPYING file.
+
+// Package monotime provides a fast monotonic clock source.
+package monotime
+
+import (
+ _ "unsafe" // required to use //go:linkname
+)
+
+//go:noescape
+//go:linkname nanotime runtime.nanotime
+func nanotime() int64
+
+// Now returns the current time in nanoseconds from a monotonic clock.
+// The time returned is based on some arbitrary platform-specific point in the
+// past. The time returned is guaranteed to increase monotonically at a
+// constant rate, unlike time.Now() from the Go standard library, which may
+// slow down, speed up, jump forward or backward, due to NTP activity or leap
+// seconds.
+func Now() uint64 {
+ return uint64(nanotime())
+}