summaryrefslogtreecommitdiff
path: root/vendor/github.com/jackc/puddle/v2/nanotime.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/jackc/puddle/v2/nanotime.go')
-rw-r--r--vendor/github.com/jackc/puddle/v2/nanotime.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/vendor/github.com/jackc/puddle/v2/nanotime.go b/vendor/github.com/jackc/puddle/v2/nanotime.go
new file mode 100644
index 000000000..8a5351a0d
--- /dev/null
+++ b/vendor/github.com/jackc/puddle/v2/nanotime.go
@@ -0,0 +1,16 @@
+package puddle
+
+import "time"
+
+// nanotime returns the time in nanoseconds since process start.
+//
+// This approach, described at
+// https://github.com/golang/go/issues/61765#issuecomment-1672090302,
+// is fast, monotonic, and portable, and avoids the previous
+// dependence on runtime.nanotime using the (unsafe) linkname hack.
+// In particular, time.Since does less work than time.Now.
+func nanotime() int64 {
+ return time.Since(globalStart).Nanoseconds()
+}
+
+var globalStart = time.Now()