diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gobang.go | 31 |
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( |