mirror of https://github.com/grpc/grpc-java.git
This fixes two races: a data race where scheduledRetry is accessed by cancel() and confusion where scheduledRetry could be set to null by the schedule()d runnable before it is set by the schedule() return value. Although it seems these races can't actually cause problems due to other conditions/constraints, it's hard to reason about. So let's plug these preemptively, even if we can't add tests that trigger them. ScheduledHedging was not specific to hedging, so can now be reused for this retry case. It was renamed to avoid being misleading. |
||
|---|---|---|
| .. | ||
| src | ||
| BUILD.bazel | ||
| build.gradle | ||