// NewPeerstore creates a threadsafe collection of peers. func NewPeerstore() Peerstore { return &peerstore{ keybook: *newKeybook(), metrics: *(NewMetrics()).(*metrics), AddrManager: AddrManager{}, ds: dssync.MutexWrap(ds.NewMapDatastore()), } }
func setup() *mock { m := &mock{} mp := ds.NewMapDatastore() ts := dssync.MutexWrap(mp) cb1 := dscb.Wrap(ts, func() { m.Lock() m.inside++ m.Unlock() <-time.After(20 * time.Millisecond) }) cd := Wrap(cb1) cb2 := dscb.Wrap(cd, func() { m.Lock() m.outside++ m.Unlock() }) m.ds = cb2 return m }