Revert "linux: use CLOCK_{REALTIME,MONOTONIC}_COARSE"
This reverts r17642 (and follow-up fix r17644) for crashing the Chrome sandbox. TBR=bmeurer@chromium.org Review URL: https://codereview.chromium.org/69933005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17668 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
102950d7a3
commit
cbdd896345
@ -43,17 +43,6 @@
|
|||||||
#include "win32-headers.h"
|
#include "win32-headers.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Make sure CLOCK_{MONOTONIC,REALTIME}_COARSE is defined on Linux.
|
|
||||||
#if V8_OS_LINUX
|
|
||||||
# if !defined(CLOCK_REALTIME_COARSE)
|
|
||||||
# define CLOCK_REALTIME_COARSE 5 // 2.6.32 and up.
|
|
||||||
# endif
|
|
||||||
# if !defined(CLOCK_MONOTONIC_COARSE)
|
|
||||||
# define CLOCK_MONOTONIC_COARSE 6 // 2.6.32 and up.
|
|
||||||
# endif
|
|
||||||
#endif // V8_OS_LINUX
|
|
||||||
|
|
||||||
|
|
||||||
namespace v8 {
|
namespace v8 {
|
||||||
namespace internal {
|
namespace internal {
|
||||||
|
|
||||||
@ -282,40 +271,11 @@ FILETIME Time::ToFiletime() const {
|
|||||||
#elif V8_OS_POSIX
|
#elif V8_OS_POSIX
|
||||||
|
|
||||||
Time Time::Now() {
|
Time Time::Now() {
|
||||||
#if V8_LIBRT_NOT_AVAILABLE
|
|
||||||
// TODO(bmeurer): This is a temporary hack to support cross-compiling
|
|
||||||
// Chrome for Android in AOSP. Remove this once AOSP is fixed, also
|
|
||||||
// cleanup the tools/gyp/v8.gyp file.
|
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
int result = gettimeofday(&tv, NULL);
|
int result = gettimeofday(&tv, NULL);
|
||||||
ASSERT_EQ(0, result);
|
ASSERT_EQ(0, result);
|
||||||
USE(result);
|
USE(result);
|
||||||
return FromTimeval(tv);
|
return FromTimeval(tv);
|
||||||
#elif defined(CLOCK_REALTIME_COARSE)
|
|
||||||
struct timespec ts;
|
|
||||||
// Use CLOCK_REALTIME_COARSE if it's available and has a precision of 1ms
|
|
||||||
// or higher. It's serviced from the vDSO with no system call overhead.
|
|
||||||
static clock_t clock_id = static_cast<clock_t>(-1);
|
|
||||||
STATIC_ASSERT(CLOCK_REALTIME != static_cast<clock_t>(-1));
|
|
||||||
STATIC_ASSERT(CLOCK_REALTIME_COARSE != static_cast<clock_t>(-1));
|
|
||||||
if (clock_id == static_cast<clock_t>(-1)) {
|
|
||||||
if (clock_getres(CLOCK_REALTIME_COARSE, &ts) == 0
|
|
||||||
&& ts.tv_nsec <= kNanosecondsPerMillisecond)
|
|
||||||
clock_id = CLOCK_REALTIME_COARSE;
|
|
||||||
else
|
|
||||||
clock_id = CLOCK_REALTIME;
|
|
||||||
}
|
|
||||||
int result = clock_gettime(clock_id, &ts);
|
|
||||||
ASSERT_EQ(0, result);
|
|
||||||
USE(result);
|
|
||||||
return FromTimespec(ts);
|
|
||||||
#else
|
|
||||||
struct timeval tv;
|
|
||||||
int result = gettimeofday(&tv, NULL);
|
|
||||||
ASSERT_EQ(0, result);
|
|
||||||
USE(result);
|
|
||||||
return FromTimeval(tv);
|
|
||||||
#endif // V8_LIBRT_NOT_AVAILABLE
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -610,23 +570,7 @@ TimeTicks TimeTicks::HighResolutionNow() {
|
|||||||
ticks = (tv.tv_sec * Time::kMicrosecondsPerSecond + tv.tv_usec);
|
ticks = (tv.tv_sec * Time::kMicrosecondsPerSecond + tv.tv_usec);
|
||||||
#elif V8_OS_POSIX
|
#elif V8_OS_POSIX
|
||||||
struct timespec ts;
|
struct timespec ts;
|
||||||
#if defined(CLOCK_MONOTONIC_COARSE)
|
int result = clock_gettime(CLOCK_MONOTONIC, &ts);
|
||||||
// Use CLOCK_MONOTONIC_COARSE if it's available and has a precision of 1ms
|
|
||||||
// or higher. It's serviced from the vDSO with no system call overhead.
|
|
||||||
static clock_t clock_id = static_cast<clock_t>(-1);
|
|
||||||
STATIC_ASSERT(CLOCK_MONOTONIC != static_cast<clock_t>(-1));
|
|
||||||
STATIC_ASSERT(CLOCK_MONOTONIC_COARSE != static_cast<clock_t>(-1));
|
|
||||||
if (clock_id == static_cast<clock_t>(-1)) {
|
|
||||||
if (clock_getres(CLOCK_MONOTONIC_COARSE, &ts) == 0
|
|
||||||
&& ts.tv_nsec <= Time::kNanosecondsPerMillisecond)
|
|
||||||
clock_id = CLOCK_MONOTONIC_COARSE;
|
|
||||||
else
|
|
||||||
clock_id = CLOCK_MONOTONIC;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static const clock_t clock_id = CLOCK_MONOTONIC;
|
|
||||||
#endif // defined(CLOCK_MONOTONIC_COARSE)
|
|
||||||
int result = clock_gettime(clock_id, &ts);
|
|
||||||
ASSERT_EQ(0, result);
|
ASSERT_EQ(0, result);
|
||||||
USE(result);
|
USE(result);
|
||||||
ticks = (ts.tv_sec * Time::kMicrosecondsPerSecond +
|
ticks = (ts.tv_sec * Time::kMicrosecondsPerSecond +
|
||||||
|
@ -192,8 +192,6 @@ class Time V8_FINAL BASE_EMBEDDED {
|
|||||||
static const int64_t kMicrosecondsPerDay = kMicrosecondsPerHour * 24;
|
static const int64_t kMicrosecondsPerDay = kMicrosecondsPerHour * 24;
|
||||||
static const int64_t kMicrosecondsPerWeek = kMicrosecondsPerDay * 7;
|
static const int64_t kMicrosecondsPerWeek = kMicrosecondsPerDay * 7;
|
||||||
static const int64_t kNanosecondsPerMicrosecond = 1000;
|
static const int64_t kNanosecondsPerMicrosecond = 1000;
|
||||||
static const int64_t kNanosecondsPerMillisecond = kNanosecondsPerMicrosecond *
|
|
||||||
kMicrosecondsPerMillisecond;
|
|
||||||
static const int64_t kNanosecondsPerSecond = kNanosecondsPerMicrosecond *
|
static const int64_t kNanosecondsPerSecond = kNanosecondsPerMicrosecond *
|
||||||
kMicrosecondsPerSecond;
|
kMicrosecondsPerSecond;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user