summaryrefslogtreecommitdiff
path: root/vendor/github.com/jtolds/gls/gen_sym.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/jtolds/gls/gen_sym.go')
-rw-r--r--vendor/github.com/jtolds/gls/gen_sym.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/vendor/github.com/jtolds/gls/gen_sym.go b/vendor/github.com/jtolds/gls/gen_sym.go
new file mode 100644
index 0000000..7f615cc
--- /dev/null
+++ b/vendor/github.com/jtolds/gls/gen_sym.go
@@ -0,0 +1,21 @@
+package gls
+
+import (
+ "sync"
+)
+
+var (
+ keyMtx sync.Mutex
+ keyCounter uint64
+)
+
+// ContextKey is a throwaway value you can use as a key to a ContextManager
+type ContextKey struct{ id uint64 }
+
+// GenSym will return a brand new, never-before-used ContextKey
+func GenSym() ContextKey {
+ keyMtx.Lock()
+ defer keyMtx.Unlock()
+ keyCounter += 1
+ return ContextKey{id: keyCounter}
+}