internal/gerrit: check for context cancellation when sleeping

Change-Id: Ieb1bf9974565679bf277c0be5b8c4c29cd4de0e9
Reviewed-on: https://go-review.googlesource.com/c/oscar/+/650535
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Commit-Queue: Ian Lance Taylor <iant@google.com>
diff --git a/internal/gerrit/sync.go b/internal/gerrit/sync.go
index fe97afd..e95e303 100644
--- a/internal/gerrit/sync.go
+++ b/internal/gerrit/sync.go
@@ -556,7 +556,13 @@
 					"try", tries,
 					"sleep", backoff,
 					"body", string(data))
-				time.Sleep(backoff)
+
+				select {
+				case <-ctx.Done():
+					return ctx.Err()
+				case <-time.After(backoff):
+				}
+
 				backoff = min(backoff*2, 1*time.Minute)
 
 				continue