Files
msteinert-go-pam/callback.go
2015-12-03 14:59:51 -06:00

31 lines
391 B
Go

package pam
import "sync"
var cb struct {
sync.Mutex
m map[int]interface{}
c int
}
func cbAdd(v interface{}) int {
cb.Lock()
defer cb.Unlock()
if cb.m == nil {
cb.m = make(map[int]interface{})
}
cb.c++
cb.m[cb.c] = v
return cb.c
}
func cbGet(c int) interface{} {
cb.Lock()
defer cb.Unlock()
v := cb.m[c]
if v == nil {
panic("Callback pointer not found")
}
return v
}