CAS atomically modifies a value in a callback. If value doesn't exist you'll get nil as an argument to your callback.
(ctx context.Context, key string, f func(in interface{}) (out interface{}, retry bool, err error))
| 128 | // CAS atomically modifies a value in a callback. |
| 129 | // If value doesn't exist you'll get nil as an argument to your callback. |
| 130 | func (c *Client) CAS(ctx context.Context, key string, f func(in interface{}) (out interface{}, retry bool, err error)) error { |
| 131 | return instrument.CollectedRequest(ctx, "CAS loop", c.consulMetrics.consulRequestDuration, instrument.ErrorCode, func(ctx context.Context) error { |
| 132 | return c.cas(ctx, key, f) |
| 133 | }) |
| 134 | } |
| 135 | |
| 136 | func (c *Client) cas(ctx context.Context, key string, f func(in interface{}) (out interface{}, retry bool, err error)) error { |
| 137 | retries := c.cfg.MaxCasRetries |
nothing calls this directly
no test coverage detected