summaryrefslogtreecommitdiff
path: root/Main.hs
diff options
context:
space:
mode:
authorTom Smeding <tom@tomsmeding.com>2022-09-08 10:10:01 +0200
committerTom Smeding <tom@tomsmeding.com>2022-09-08 10:10:01 +0200
commit9a8190e3dd6899ca1be16fa24172e842fcb16bd8 (patch)
tree90ad3387197a1dda2e73bbf61432bc6a437568dd /Main.hs
Initial
Diffstat (limited to 'Main.hs')
-rw-r--r--Main.hs25
1 files changed, 25 insertions, 0 deletions
diff --git a/Main.hs b/Main.hs
new file mode 100644
index 0000000..fa27ae7
--- /dev/null
+++ b/Main.hs
@@ -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 ())