| 1777 | } |
| 1778 | |
| 1779 | func (c *Controller) refreshToken(ctx context.Context, client ResumeTokenClient) { |
| 1780 | cw := c.ResumeTokenCtrl.New(client) |
| 1781 | go func() { |
| 1782 | <-ctx.Done() |
| 1783 | cErr := cw.Close(c.ctx) |
| 1784 | if cErr != nil { |
| 1785 | c.logger.Error(c.ctx, "error closing token refresher", slog.Error(cErr)) |
| 1786 | } |
| 1787 | }() |
| 1788 | |
| 1789 | err := <-cw.Wait() |
| 1790 | if err != nil && !xerrors.Is(err, context.Canceled) && !xerrors.Is(err, context.DeadlineExceeded) { |
| 1791 | c.logger.Error(c.ctx, "error receiving refresh token", slog.Error(err)) |
| 1792 | } |
| 1793 | } |
| 1794 | |
| 1795 | func (c *Controller) Closed() <-chan struct{} { |
| 1796 | return c.closedCh |