You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
380 B
22 lines
380 B
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}
|
|
}
|