mueval-0.9.4: src/Mueval/Parallel.hs
module Mueval.Parallel (runMueval) where
import Control.Monad (void)
import Mueval.ArgsParse (Options (modules, noImports, timeLimit))
import Mueval.Interpreter (interpreterSession)
import System.Timeout (timeout)
runMueval :: Options -> IO ()
runMueval opts =
let time = timeLimit opts * 1000000
checkImport x = if noImports x then x{modules = Nothing} else x
in void $ timeout time $ interpreterSession (checkImport opts)