| 280 | } |
| 281 | |
| 282 | func (c communicator) loopResp() { |
| 283 | ctx := c.stream.Context() |
| 284 | defer func() { |
| 285 | err := c.stream.Close() |
| 286 | if err != nil { |
| 287 | c.logger.Debug(ctx, "loopResp hit error closing stream", slog.Error(err)) |
| 288 | } |
| 289 | }() |
| 290 | for { |
| 291 | resp, err := RecvCtx(ctx, c.resps) |
| 292 | if err != nil { |
| 293 | c.logger.Debug(ctx, "loopResp failed to get response", slog.Error(err)) |
| 294 | return |
| 295 | } |
| 296 | err = c.stream.Send(resp) |
| 297 | if err != nil { |
| 298 | c.logger.Debug(ctx, "loopResp failed to send response to DRPC stream", slog.Error(err)) |
| 299 | return |
| 300 | } |
| 301 | } |
| 302 | } |
| 303 | |
| 304 | type NetworkTelemetryBatcher struct { |
| 305 | clock quartz.Clock |