Fix restart mutex unlocking for loops

This commit is contained in:
Quentin McGaw (desktop)
2021-08-09 14:38:15 +00:00
parent c777f8d97d
commit 61066e3896

View File

@@ -37,6 +37,7 @@ func (s *State) ApplyStatus(ctx context.Context, status models.LoopStatus) (
switch existingStatus {
case constants.Stopped, constants.Completed:
default:
s.statusMu.Unlock()
return "already " + existingStatus.String(), nil
}
@@ -55,6 +56,7 @@ func (s *State) ApplyStatus(ctx context.Context, status models.LoopStatus) (
return newStatus.String(), nil
case constants.Stopped:
if existingStatus != constants.Running {
s.statusMu.Unlock()
return "already " + existingStatus.String(), nil
}
@@ -73,6 +75,7 @@ func (s *State) ApplyStatus(ctx context.Context, status models.LoopStatus) (
return newStatus.String(), nil
default:
s.statusMu.Unlock()
return "", fmt.Errorf("%w: %s: it can only be one of: %s, %s",
ErrInvalidStatus, status, constants.Running, constants.Stopped)
}