Versions in this module Expand all Collapse all v1 v1.0.0 Aug 17, 2023 Changes in this version + var ErrKeyExists = errors.New("key already exists") + var ErrNoWatcher = errors.New("no watcher channel") + var ErrTooManyClients = errors.New("too many clients") + var ErrWaitMismatch = errors.New("unexpected wait result") + func WaitEvents(c *clientv3.Client, key string, rev int64, evs []mvccpb.Event_EventType) (*clientv3.Event, error) + func WaitPrefixEvents(c *clientv3.Client, prefix string, rev int64, evs []mvccpb.Event_EventType) (*clientv3.Event, error) + type Barrier struct + func NewBarrier(client *v3.Client, key string) *Barrier + func (b *Barrier) Hold() error + func (b *Barrier) Release() error + func (b *Barrier) Wait() error + type DoubleBarrier struct + func NewDoubleBarrier(s *concurrency.Session, key string, count int) *DoubleBarrier + func (b *DoubleBarrier) Enter() error + func (b *DoubleBarrier) Leave() error + type EphemeralKV struct + type PriorityQueue struct + func NewPriorityQueue(client *v3.Client, key string) *PriorityQueue + func (q *PriorityQueue) Dequeue() (string, error) + func (q *PriorityQueue) Enqueue(val string, pr uint16) error + type Queue struct + func NewQueue(client *v3.Client, keyPrefix string) *Queue + func (q *Queue) Dequeue() (string, error) + func (q *Queue) Enqueue(val string) error + type RWMutex struct + func NewRWMutex(s *concurrency.Session, prefix string) *RWMutex + func (rwm *RWMutex) Lock() error + func (rwm *RWMutex) RLock() error + func (rwm *RWMutex) RUnlock() error + func (rwm *RWMutex) Unlock() error + type RemoteKV struct + func (rk *RemoteKV) Delete() error + func (rk *RemoteKV) Key() string + func (rk *RemoteKV) Put(val string) error + func (rk *RemoteKV) Revision() int64 + func (rk *RemoteKV) Value() string