-- > }
runHttpd :: Config -> ResTree -> IO ()
runHttpd cnf tree
- = withSocketsDo $
+ = cnf `seq` tree `seq`
+ withSocketsDo $
do installHandler sigPIPE Ignore Nothing
so <- listenOn (cnfServerPort cnf)
loop so
loop so
-- 本當は Network.accept を使ひたいが、このアクションは勝手に
-- リモートのIPを逆引きするので、使へない。
- = do (h, addr) <- accept' so
+ = so `seq`
+ do (h, addr) <- accept' so
tQueue <- newInteractionQueue
readerTID <- forkIO $ requestReader cnf tree h addr tQueue
writerTID <- forkIO $ responseWriter cnf h tQueue readerTID
accept' :: Socket -> IO (Handle, So.SockAddr)
accept' soSelf
- = do (soPeer, addr) <- So.accept soSelf
+ = soSelf `seq`
+ do (soPeer, addr) <- So.accept soSelf
hPeer <- So.socketToHandle soPeer ReadWriteMode
return (hPeer, addr)