diff --git a/storage/locker.go b/storage/locker.go index 2c836c7..5d242ab 100644 --- a/storage/locker.go +++ b/storage/locker.go @@ -52,6 +52,11 @@ func (l *Lock) Lock(ctx context.Context, requestUnlock func()) error { return err } + err = l.lockRecord.RequestRelease(db) + if err != nil { + return err + } + select { case <-ctx.Done(): // Context expired, so we return a timeout @@ -62,11 +67,6 @@ func (l *Lock) Lock(ctx context.Context, requestUnlock func()) error { } } - err := l.lockRecord.RequestRelease(db) - if err != nil { - return err - } - defer func(lockRecord *models.TusLock, db *gorm.DB) { err := lockRecord.Released(db) if err != nil {