contrib/recipes/barrier.go
func (b *Barrier) Wait() error {
	resp, err := b.client.Get(b.ctx, b.key, v3.WithFirstKey()...)
	if err != nil {
		return err
	}
	if len(resp.Kvs) == 0 {
		// key already removed
		return nil
	}
	_, err = WaitEvents(
		b.client,
		b.key,
		resp.Header.Revision,
		[]mvccpb.Event_EventType{mvccpb.PUT, mvccpb.DELETE})
	return err
}
func (b *Barrier) Wait() error {
	resp, err := b.client.Get(b.ctx, b.key, v3.WithFirstKey()...)
	if err != nil {
		return err
	}
	if len(resp.Kvs) == 0 {
		// key already removed
		return nil
	}
	_, err = WaitEvents(
		b.client,
		b.key,
		resp.Header.Revision,
		[]mvccpb.Event_EventType{mvccpb.PUT, mvccpb.DELETE})
	return err
}
func ( b * Barrier ) Wait ( ) error { resp , err := b . client . Get ( b . ctx , b . key , v3 . WithFirstKey ( ) ... ) if err != nil { return err } if len ( resp . Kvs ) == 0 { // key already removed return nil } _ , err = WaitEvents ( b . client , b . key , resp . Header . Revision , [ ] mvccpb . Event_EventType { mvccpb . PUT , mvccpb . DELETE } ) return err }
// Wait blocks on the barrier key until it is deleted. If there is no key, Wait
// assumes Release has already been called and returns immediately.
Wait blocks on the barrier key until it is deleted . If there is no key Wait assumes Release has already been called and returns immediately .