Release manually releases the lock. May return ErrLockNotHeld.
(ctx context.Context)
| 270 | // Release manually releases the lock. |
| 271 | // May return ErrLockNotHeld. |
| 272 | func (l *Lock) Release(ctx context.Context) error { |
| 273 | if l == nil { |
| 274 | return ErrLockNotHeld |
| 275 | } |
| 276 | _, err := luaRelease.Run(ctx, l.client, l.keys, l.value).Result() |
| 277 | if err != nil { |
| 278 | if errors.Is(err, redis.Nil) { |
| 279 | return ErrLockNotHeld |
| 280 | } |
| 281 | return err |
| 282 | } |
| 283 | return nil |
| 284 | } |
| 285 | |
| 286 | // -------------------------------------------------------------------- |
| 287 |
no outgoing calls