From 5ebcd89e11841fd777f9ab6fbe1c4c46b02313a7 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Wed, 25 Sep 2019 18:51:54 +0200 Subject: [PATCH] fix: restore behaviour of waiting asynchronously for job-management --- src/Jobs.hs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Jobs.hs b/src/Jobs.hs index 39a1d7bac..d2de34d8d 100644 --- a/src/Jobs.hs +++ b/src/Jobs.hs @@ -55,6 +55,8 @@ import Data.Time.Zones import Control.Concurrent.STM (retry) import Control.Concurrent.STM.Delay +import UnliftIO.Concurrent (forkIO) + import Jobs.Handler.SendNotification import Jobs.Handler.SendTestEmail @@ -219,7 +221,7 @@ stopJobCtl UniWorX{appJobState} = do didStop <- atomically $ do jState <- tryReadTMVar appJobState for jState $ \jSt'@JobState{jobShutdown} -> jSt' <$ tryPutTMVar jobShutdown () - whenIsJust didStop $ \jSt' -> void . atomically $ do + whenIsJust didStop $ \jSt' -> void . forkIO . atomically $ do workers <- maybe [] (Map.keys . jobWorkers) <$> tryTakeTMVar appJobState mapM_ (void . waitCatchSTM) $ [ jobPoolManager jSt'