瀏覽代碼

Merge pull request #6413 from xiang90/fix_wait

clientv3: return error from response when possible
Xiang Li 9 年之前
父節點
當前提交
8c492c70ef
共有 1 個文件被更改,包括 7 次插入1 次删除
  1. 7 1
      clientv3/concurrency/key.go

+ 7 - 1
clientv3/concurrency/key.go

@@ -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
 	}
 	}