module Hack2.Handler.Mongrel2.Utils where import Control.Concurrent import System.IO.Unsafe (unsafePerformIO) import Prelude () import Air.Env hiding (log) import System.IO sync_lock :: MVar () sync_lock = unsafePerformIO - newMVar () jailed :: IO a -> IO a jailed io = do withMVar sync_lock (const io) log :: String -> IO () -- log x = jailed - putStrLn x log x = return () log_error :: String -> IO () log_error x = jailed - hPutStr stderr x