diff --git a/engine/guardian.go b/engine/guardian.go index dfc33a121..716d3aaec 100644 --- a/engine/guardian.go +++ b/engine/guardian.go @@ -83,7 +83,6 @@ func (guard *GuardianLock) unlockItems(itmLocks []*itemLock) { func (guard *GuardianLock) Guard(handler func() (interface{}, error), timeout time.Duration, lockIDs ...string) (reply interface{}, err error) { itmLocks := guard.lockItems(lockIDs) - defer guard.unlockItems(itmLocks) rplyChan := make(chan interface{}) errChan := make(chan error) @@ -109,6 +108,7 @@ func (guard *GuardianLock) Guard(handler func() (interface{}, error), timeout ti } } + guard.unlockItems(itmLocks) return }