From 439481ad37868c732fa68fc31b65c581d0dcd7fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sun, 5 Jul 2026 11:25:41 +0200 Subject: Restart cancelled jobs when needed --- src/Job.hs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/Job.hs') diff --git a/src/Job.hs b/src/Job.hs index 7701da0..10fe865 100644 --- a/src/Job.hs +++ b/src/Job.hs @@ -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 -- cgit v1.2.3