bug fix
This commit is contained in:
parent
cf28620949
commit
4bf0637e04
34
basicrw.go
34
basicrw.go
@ -2,6 +2,35 @@ package starmap
|
||||
|
||||
import "errors"
|
||||
|
||||
func (stack *StarStack) Count() int {
|
||||
stack.kvPushmu.Lock()
|
||||
defer stack.kvPushmu.Unlock()
|
||||
return len(stack.kvStack)
|
||||
}
|
||||
|
||||
func (stack *StarStack) Push(val interface{}) error {
|
||||
stack.kvPushmu.Lock()
|
||||
defer stack.kvPushmu.Unlock()
|
||||
stack.kvStack = append(stack.kvStack, val)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (stack *StarStack) Pop() (interface{}, error) {
|
||||
stack.kvPushmu.Lock()
|
||||
defer stack.kvPushmu.Unlock()
|
||||
if len(stack.kvStack) == 0 {
|
||||
return nil, errors.New("Empty Stacks")
|
||||
}
|
||||
val := stack.kvStack[0]
|
||||
stack.kvStack = stack.kvStack[1:]
|
||||
return val, nil
|
||||
}
|
||||
|
||||
func (stack *StarStack) MustPop() interface{} {
|
||||
val, _ := stack.Pop()
|
||||
return val
|
||||
}
|
||||
|
||||
func Get(key string) (interface{}, error) {
|
||||
var err error
|
||||
kvmu.RLock()
|
||||
@ -13,6 +42,11 @@ func Get(key string) (interface{}, error) {
|
||||
return data, err
|
||||
}
|
||||
|
||||
func MustGet(key string) interface{} {
|
||||
result, _ := Get(key)
|
||||
return result
|
||||
}
|
||||
|
||||
func Store(key string, value interface{}) error {
|
||||
kvmu.Lock()
|
||||
defer kvmu.Unlock()
|
||||
|
@ -15,6 +15,12 @@ func (kv *RemoteKv) clientOnline() error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (kv *RemoteKv) MustGet(key string) interface{} {
|
||||
result, _ := kv.Get(key)
|
||||
return result
|
||||
}
|
||||
|
||||
func (kv *RemoteKv) Get(key string) (interface{}, error) {
|
||||
kv.kvmu.Lock()
|
||||
defer kv.kvmu.Unlock()
|
||||
|
@ -7,6 +7,11 @@ var kvmu sync.RWMutex
|
||||
var kvMapPro map[string]StarMap
|
||||
var kvmuPro sync.RWMutex
|
||||
|
||||
type StarStack struct {
|
||||
kvPushmu sync.RWMutex
|
||||
kvStack []interface{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
kvMap = make(map[string]interface{})
|
||||
kvMapPro = make(map[string]StarMap)
|
||||
|
Loading…
x
Reference in New Issue
Block a user