X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=System%2FCPUTime.hsc;h=a25c750ff3bf6dd0b37040902796faaa58c819e0;hb=57b9366e5fd3db86719d12b45320e6145b040fa6;hp=2dbc896aaf4151ac9fb784eff4d89e2c948bdb30;hpb=004b338d7745211d49ea9fd60b42d13d342be49b;p=ghc-base.git diff --git a/System/CPUTime.hsc b/System/CPUTime.hsc index 2dbc896..a25c750 100644 --- a/System/CPUTime.hsc +++ b/System/CPUTime.hsc @@ -1,3 +1,5 @@ +{-# LANGUAGE CPP, NondecreasingIndentation, ForeignFunctionInterface #-} + ----------------------------------------------------------------------------- -- | -- Module : System.CPUTime @@ -31,8 +33,11 @@ import CPUTime ( getCPUTime, cpuTimePrecision ) #endif #ifdef __GLASGOW_HASKELL__ -import Foreign +import Foreign hiding (unsafePerformIO) import Foreign.C +#if !defined(CLK_TCK) +import System.IO.Unsafe (unsafePerformIO) +#endif #include "HsBaseConfig.h" @@ -108,7 +113,7 @@ foreign import ccall unsafe getrusage :: CInt -> Ptr CRUsage -> IO CInt #else # if defined(HAVE_TIMES) allocaBytes (#const sizeof(struct tms)) $ \ p_tms -> do - times p_tms + _ <- times p_tms u_ticks <- (#peek struct tms,tms_utime) p_tms :: IO CClock s_ticks <- (#peek struct tms,tms_stime) p_tms :: IO CClock return (( (realToInteger u_ticks + realToInteger s_ticks) * 1000000000000)