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.
29 lines
452 B
29 lines
452 B
6 years ago
|
// +build !go1.4
|
||
|
|
||
|
package ldap
|
||
|
|
||
|
import (
|
||
|
"sync"
|
||
|
)
|
||
|
|
||
|
// This is a helper type that emulates the use of the "sync/atomic.Value"
|
||
|
// struct that's available in Go 1.4 and up.
|
||
|
type atomicValue struct {
|
||
|
value interface{}
|
||
|
lock sync.RWMutex
|
||
|
}
|
||
|
|
||
|
func (av *atomicValue) Store(val interface{}) {
|
||
|
av.lock.Lock()
|
||
|
av.value = val
|
||
|
av.lock.Unlock()
|
||
|
}
|
||
|
|
||
|
func (av *atomicValue) Load() interface{} {
|
||
|
av.lock.RLock()
|
||
|
ret := av.value
|
||
|
av.lock.RUnlock()
|
||
|
|
||
|
return ret
|
||
|
}
|