Make a wrapper for getrusage; part of #5480
authorIan Lynagh <igloo@earth.li>
Fri, 25 Nov 2011 23:18:57 +0000 (23:18 +0000)
committerIan Lynagh <igloo@earth.li>
Fri, 25 Nov 2011 23:18:57 +0000 (23:18 +0000)
System/CPUTime.hsc
include/HsBase.h

index e98234f..06cf730 100644 (file)
@@ -111,7 +111,7 @@ getCPUTime = do
                 * 1000000)
 
 type CRUsage = ()
-foreign import ccall unsafe getrusage :: CInt -> Ptr CRUsage -> IO CInt
+foreign import ccall unsafe "__hsbase_getrusage" getrusage :: CInt -> Ptr CRUsage -> IO CInt
 #elif defined(HAVE_TIMES)
     allocaBytes (#const sizeof(struct tms)) $ \ p_tms -> do
     _ <- times p_tms
index 9abe4bf..d45ee99 100644 (file)
@@ -667,5 +667,13 @@ INLINE int fcntl_lock(int fd, int cmd, struct flock *lock) {
 
 #endif
 
+#if !defined(mingw32_HOST_OS) && !defined(cygwin32_HOST_OS)
+#if defined(HAVE_GETRUSAGE) && ! irix_HOST_OS && ! solaris2_HOST_OS
+INLINE int __hsbase_getrusage(int who, struct rusage *rusage) {
+   return getrusage(who, rusage);
+}
+#endif
+#endif
+
 #endif /* __HSBASE_H__ */