module Main (main) where import Control.Concurrent import Control.Monad (replicateM_) import Snap.Http.Server import qualified System.Process as Pr makeWorker :: IO () makeWorker = do _ <- forkIO $ do Pr.withCreateProcess (Pr.proc "sleep" ["10"]) $ \_ _ _ _ -> do threadDelay 1000000 return () makePool :: Int -> IO () makePool numWorkers = replicateM_ numWorkers makeWorker main :: IO () main = do nprocs <- getNumCapabilities putStrLn $ "Starting worker with " ++ show nprocs ++ " threads (use +RTS -N to set)" _ <- makePool nprocs httpServe defaultConfig (return ())