Files
kapow/internal/server/user/state/state.go
pancho horrillo e0dd6f5dd5 Refactor internal/server/user package structure
Co-authored-by: Roberto Abdelkader Martínez Pérez <robertomartinezp@gmail.com>
2019-10-08 17:22:09 +02:00

35 lines
526 B
Go

package state
import (
"sync"
"github.com/BBVA/kapow/internal/server/model"
)
type safeRouteList struct {
rs []model.Route
m *sync.RWMutex
}
func New() safeRouteList {
return safeRouteList{
rs: []model.Route{},
m: &sync.RWMutex{},
}
}
func (srl *safeRouteList) Append(r model.Route) {
srl.m.Lock()
srl.rs = append(srl.rs, r)
srl.m.Unlock()
}
func (srl *safeRouteList) Snapshot() []model.Route {
srl.m.RLock()
defer srl.m.RUnlock()
rs := make([]model.Route, len(srl.rs))
copy(rs, srl.rs)
return rs
}