(ctx context.Context, instances []InstanceDesc)
| 427 | } |
| 428 | |
| 429 | func newZoneAwareContextTracker(ctx context.Context, instances []InstanceDesc) *zoneAwareContextTracker { |
| 430 | t := &zoneAwareContextTracker{ |
| 431 | contexts: make(map[*InstanceDesc]context.Context, len(instances)), |
| 432 | cancelFuncs: make(map[*InstanceDesc]context.CancelCauseFunc, len(instances)), |
| 433 | } |
| 434 | |
| 435 | for i := range instances { |
| 436 | instance := &instances[i] |
| 437 | ctx, cancel := context.WithCancelCause(ctx) |
| 438 | t.contexts[instance] = ctx |
| 439 | t.cancelFuncs[instance] = cancel |
| 440 | } |
| 441 | |
| 442 | return t |
| 443 | } |
| 444 | |
| 445 | func (t *zoneAwareContextTracker) contextFor(instance *InstanceDesc) (context.Context, context.CancelCauseFunc) { |
| 446 | return t.contexts[instance], t.cancelFuncs[instance] |
no outgoing calls