summaryrefslogtreecommitdiff
path: root/cpp/src/IceUtil/Time.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceUtil/Time.cpp')
-rw-r--r--cpp/src/IceUtil/Time.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/cpp/src/IceUtil/Time.cpp b/cpp/src/IceUtil/Time.cpp
index b42b49c2927..29820316070 100644
--- a/cpp/src/IceUtil/Time.cpp
+++ b/cpp/src/IceUtil/Time.cpp
@@ -20,7 +20,6 @@
#endif
#ifdef __APPLE__
-# include <CoreServices/CoreServices.h>
# include <mach/mach.h>
# include <mach/mach_time.h>
#endif
@@ -68,14 +67,16 @@ InitializeFrequency frequencyInitializer;
namespace
{
-mach_timebase_info_data_t initTimeBase = {0, 0};
+double machMultiplier = 1.0;
class InitializeTime
{
public:
InitializeTime()
{
+ mach_timebase_info_data_t initTimeBase = { 0, 0 };
mach_timebase_info(&initTimeBase);
+ machMultiplier = static_cast<double>(initTimeBase.numer) / initTimeBase.denom / ICE_INT64(1000);
}
};
InitializeTime initializeTime;
@@ -148,7 +149,7 @@ IceUtil::Time::now(Clock clock)
}
return Time(tv.tv_sec * ICE_INT64(1000000) + tv.tv_usec);
#elif defined(__APPLE__)
- return Time((mach_absolute_time() * initTimeBase.numer / initTimeBase.denom) / ICE_INT64(1000));
+ return Time(mach_absolute_time() * machMultiplier);
#else
struct timespec ts;
if(clock_gettime(CLOCK_MONOTONIC, &ts) < 0)