Merge pull request #6413 from xiang90/fix_wait

clientv3: return error from response when possible
This commit is contained in:
Xiang Li 2016-09-12 22:54:42 -05:00 committed by GitHub
commit 8c492c70ef

View File

@ -26,14 +26,20 @@ import (
func waitDelete(ctx context.Context, client *v3.Client, key string, rev int64) error { func waitDelete(ctx context.Context, client *v3.Client, key string, rev int64) error {
cctx, cancel := context.WithCancel(ctx) cctx, cancel := context.WithCancel(ctx)
defer cancel() defer cancel()
var wr v3.WatchResponse
wch := client.Watch(cctx, key, v3.WithRev(rev)) wch := client.Watch(cctx, key, v3.WithRev(rev))
for wr := range wch { for wr = range wch {
for _, ev := range wr.Events { for _, ev := range wr.Events {
if ev.Type == mvccpb.DELETE { if ev.Type == mvccpb.DELETE {
return nil return nil
} }
} }
} }
if err := wr.Err(); err != nil {
return err
}
if err := ctx.Err(); err != nil { if err := ctx.Err(); err != nil {
return err return err
} }