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} }