redundant

This commit is contained in:
Jon Doe 2020-09-12 14:40:05 +02:00 committed by Maciej Bonin
parent 93fef0c8be
commit 35e395960c

View File

@ -4,7 +4,7 @@ import Control.Concurrent.STM.TMVar
import Control.Concurrent.STM.TChan import Control.Concurrent.STM.TChan
import qualified Data.Map as M import qualified Data.Map as M
import qualified Data.Text as T import qualified Data.Text as T
import Control.Concurrent(ThreadId, forkIO) import Control.Concurrent(ThreadId, forkIO, killThread)
data Placeholder = Placeholder data Placeholder = Placeholder
data CommandMap = CommandMap (M.Map T.Text Placeholder) data CommandMap = CommandMap (M.Map T.Text Placeholder)
data CommandWorkspace = CommandWorkspace Placeholder data CommandWorkspace = CommandWorkspace Placeholder
@ -25,8 +25,8 @@ runForever :: TMVar Bool -> IO ()
runForever diediedie = runForever diediedie =
let block = do let block = do
canaryDead <- readTMVar diediedie canaryDead <- readTMVar diediedie
if (canaryDead == True) then if (canaryDead) then
return True return canaryDead
else else
retry retry
in atomically block >>= \isDone -> in atomically block >>= \isDone ->
@ -49,5 +49,5 @@ main = do
collectorTID <- forkIO $ collectInputs collectorChannel availableCommandMap sharedCommandWorkspace sharedTaskQueue collectorTID <- forkIO $ collectInputs collectorChannel availableCommandMap sharedCommandWorkspace sharedTaskQueue
canary <- atomically $ newTMVar False -- simple 'should I exit' canary canary <- atomically $ newTMVar False -- simple 'should I exit' canary
runForever canary runForever canary
mapM_ killThread [dispatchTID, broadcastTID, collectorTID]