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.
21 lines
380 B
21 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} |
|
}
|
|
|