diff options
author | Tom Smeding <tom@tomsmeding.com> | 2022-09-08 10:10:01 +0200 |
---|---|---|
committer | Tom Smeding <tom@tomsmeding.com> | 2022-09-08 10:10:01 +0200 |
commit | 9a8190e3dd6899ca1be16fa24172e842fcb16bd8 (patch) | |
tree | 90ad3387197a1dda2e73bbf61432bc6a437568dd /Main.hs |
Initial
Diffstat (limited to 'Main.hs')
-rw-r--r-- | Main.hs | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -0,0 +1,25 @@ +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.sh" []) $ \_ _ _ _ -> 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<n> to set)" + _ <- makePool nprocs + + httpServe defaultConfig (return ()) |