[Libreoffice-commits] core.git: sal/osl

Arnaud Versini arnaud.versini at gmail.com
Mon May 13 09:59:46 PDT 2013


 sal/osl/unx/time.c |   22 +++++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)

New commits:
commit c85493b6a8033f5bab937e970f824d3a4bcbc790
Author: Arnaud Versini <arnaud.versini at gmail.com>
Date:   Thu May 9 14:45:18 2013 +0200

    Use clock_gettime instead of gettimeofday to have more precise time
    
    Change-Id: I8e568368e7626789dee21d4823dbedec6257a231
    Reviewed-on: https://gerrit.libreoffice.org/3841
    Reviewed-by: Norbert Thiebaud <nthiebaud at gmail.com>
    Tested-by: Norbert Thiebaud <nthiebaud at gmail.com>

diff --git a/sal/osl/unx/time.c b/sal/osl/unx/time.c
index e613248..c99036b 100644
--- a/sal/osl/unx/time.c
+++ b/sal/osl/unx/time.c
@@ -22,6 +22,7 @@
 
 #include <osl/diagnose.h>
 #include <osl/time.h>
+#include <time.h>
 
 /* FIXME: detection should be done in configure script */
 #if defined(MACOSX) || defined(FREEBSD) || defined(NETBSD) || \
@@ -38,15 +39,30 @@
 
 sal_Bool SAL_CALL osl_getSystemTime(TimeValue* tv)
 {
+    int res;
+#if defined(LINUX)
+    struct timespec tp;
+
+    res = clock_gettime(CLOCK_REALTIME, &tp);
+#else
     struct timeval tp;
 
-    /* FIXME: use higher resolution */
-    gettimeofday(&tp, NULL);
+    res = gettimeofday(&tp, NULL);
+#endif
+
+    if (res != 0)
+    {
+        return sal_False;
+    }
 
     tv->Seconds = tp.tv_sec;
+    #if defined(LINUX)
+    tv->Nanosec = tp.tv_nsec;
+    #else
     tv->Nanosec = tp.tv_usec * 1000;
+    #endif
 
-    return (sal_True);
+    return sal_True;
 }
 
 


More information about the Libreoffice-commits mailing list