Try to use gettimeofday if clock_gettime is failed
authorSung-jae Park <nicesj.park@samsung.com>
Thu, 26 Sep 2013 02:46:27 +0000 (11:46 +0900)
committerSung-jae Park <nicesj.park@samsung.com>
Thu, 26 Sep 2013 02:46:27 +0000 (11:46 +0900)
Change-Id: I2031a9cb66d59d50787c67823692f91069233098

src/util.c

index d78e3bf..133878b 100644 (file)
 #include "livebox-errno.h"
 
 int errno;
+#if defined(_USE_ECORE_TIME_GET)
 static struct {
        clockid_t type;
 } s_info = {
        .type = CLOCK_MONOTONIC,
 };
+#endif
 
 static inline char *check_native_livebox(const char *pkgname)
 {
@@ -110,6 +112,7 @@ int util_validate_livebox_package(const char *pkgname)
 
 double util_timestamp(void)
 {
+#if defined(_USE_ECORE_TIME_GET)
        struct timespec ts;
 
        do {
@@ -121,11 +124,28 @@ double util_timestamp(void)
                if (s_info.type == CLOCK_MONOTONIC) {
                        s_info.type = CLOCK_REALTIME;
                } else if (s_info.type == CLOCK_REALTIME) {
-                       break;
+                       struct timeval tv;
+                       if (gettimeofday(&tv, NULL) < 0) {
+                               ErrPrint("gettimeofday: %s\n", strerror(errno));
+                               break;
+                       }
+
+                       return tv.tv_sec + tv.tv_usec / 1000000.0f;
                }
        } while (1);
 
        return 0.0f;
+#else
+       struct timeval tv;
+
+       if (gettimeofday(&tv, NULL) < 0) {
+               ErrPrint("gettimeofday: %s\n", strerror(errno));
+               tv.tv_sec = 0;
+               tv.tv_usec = 0;
+       }
+
+       return tv.tv_sec + tv.tv_usec / 1000000.0f;
+#endif
 }
 
 const char *util_basename(const char *name)