()
| 77 | } |
| 78 | |
| 79 | func (t *rpcTracker) send() { |
| 80 | if !atomic.CompareAndSwapUint32(&t.sent, 0, 1) { |
| 81 | return |
| 82 | } |
| 83 | |
| 84 | for i := range t.nodes { |
| 85 | t.wg.Add(1) |
| 86 | go t.callSingle(i) |
| 87 | } |
| 88 | |
| 89 | if t.minCount == 0 { |
| 90 | t.done() |
| 91 | } |
| 92 | } |
| 93 | |
| 94 | func (t *rpcTracker) callSingle(idx int) { |
| 95 | caller := t.r.TrackerNewCallerFunc(t.nodes[idx]) |