Repository : ssh://darcs.haskell.org//srv/darcs/packages/old-time

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/2cebe05be7304c813b7edc29ca583b32a7b7c879

>---------------------------------------------------------------

commit 2cebe05be7304c813b7edc29ca583b32a7b7c879
Author: William Knop <[email protected]>
Date:   Mon Apr 4 21:15:27 2011 -0400

    Use CSUSeconds rather than CTime in getClockTime. Fixes #4970.
    
    The tv_usec field of struct timeval was incorrectly used as C type time_t; 
the actual C type is suseconds_t. On OS X, time_t is longer than suseconds_t, 
which caused garbage bits to be copied as reported in trace #4247 and #4970. 
This is patch 4 of 4 to fix those tickets.

>---------------------------------------------------------------

 System/Time.hsc |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/System/Time.hsc b/System/Time.hsc
index 663e875..ecd83c2 100644
--- a/System/Time.hsc
+++ b/System/Time.hsc
@@ -250,7 +250,7 @@ getClockTime = do
   allocaBytes (#const sizeof(struct timeval)) $ \ p_timeval -> do
     throwErrnoIfMinus1_ "getClockTime" $ gettimeofday p_timeval nullPtr
     sec  <- (#peek struct timeval,tv_sec)  p_timeval :: IO CTime
-    usec <- (#peek struct timeval,tv_usec) p_timeval :: IO CTime
+    usec <- (#peek struct timeval,tv_usec) p_timeval :: IO CSUSeconds
     return (TOD (realToInteger sec) ((realToInteger usec) * 1000000))
  
 #elif HAVE_FTIME



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to