diff options
| author | Roman Smrž <roman.smrz@seznam.cz> | 2026-07-05 11:25:41 +0200 |
|---|---|---|
| committer | Roman Smrž <roman.smrz@seznam.cz> | 2026-07-05 14:03:27 +0200 |
| commit | 439481ad37868c732fa68fc31b65c581d0dcd7fa (patch) | |
| tree | b000f79cfc453b39f5c32af7daaca039f92d5c8d /src/Job.hs | |
| parent | 26abedba2417ef166a3dfe2370736ec337ed7dfd (diff) | |
Restart cancelled jobs when needed
Diffstat (limited to 'src/Job.hs')
| -rw-r--r-- | src/Job.hs | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -226,8 +226,14 @@ runJobs mngr@JobManager {..} tout jobs rerun = do managed <- readTVar jmJobs ( job, tid, ) <$> case M.lookup (jobId job) managed of Just origVar -> do - newTVar . JobDuplicate (jobId job) =<< readTVar origVar - + readTVar origVar >>= \case + JobCancelled -> do + -- Restart previously cancelled job + statusVar <- newTVar JobQueued + writeTVar jmJobs $ M.insert (jobId job) statusVar managed + return statusVar + pstatus -> do + newTVar $ JobDuplicate (jobId job) pstatus Nothing -> do statusVar <- newTVar JobQueued writeTVar jmJobs $ M.insert (jobId job) statusVar managed |