summaryrefslogtreecommitdiff
path: root/src/gobang.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/gobang.go')
-rw-r--r--src/gobang.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/gobang.go b/src/gobang.go
index 921597e..804cd34 100644
--- a/src/gobang.go
+++ b/src/gobang.go
@@ -14,6 +14,7 @@ import (
"slices"
"strings"
"syscall"
+ "time"
"guuid"
)
@@ -201,6 +202,36 @@ func metric(type_ string, label string, args ...any) {
)
}
+func Timed(label string, thunk func() any, args ...any) any {
+ var (
+ start time.Time
+ end time.Time
+ ret any
+ )
+
+
+ {
+ start = time.Now()
+ ret = thunk()
+ end = time.Now()
+ }
+
+ duration := end.Sub(start)
+ metric(
+ "timer", label,
+ slices.Concat(
+ []any{
+ "start", start,
+ "end", end,
+ "duration", duration,
+ },
+ args,
+ )...,
+ )
+
+ return ret
+}
+
func MakeCounter(label string) func(...any) {
return func(args ...any) {
metric(