Commit Graph

9 Commits

Author SHA1 Message Date
bmeurer@chromium.org
81e4550796 Always use timeGetTime() for TimeTicks::Now() on Windows.
This way, we also ensure that timeGetTime() is used for Time::Now(),
and thereby Date.now() even if GetTickCount64() is available.

Also add test coverage for Time::Now(), TimeTicks::Now() and
TimeTicks::HighResNow().

BUG=chromium:288924
TEST=cctest/test-timer
R=hpayer@chromium.org

Review URL: https://codereview.chromium.org/25468003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17080 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-02 13:30:31 +00:00
bmeurer@chromium.org
fead0d0600 Cleanup Semaphore class.
Drop the previous Semaphore class from platform files.

Add new Semaphore class using the new TimeDelta class for
the WaitFor() operation. Consistently assert correct behaviour
for the different implementations.

Improve test coverage of the Semaphore class.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/23748003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 12:26:06 +00:00
bmeurer@chromium.org
b320dfcf58 Reland^2 "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class."
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(),
which are broken in several ways. The ElapsedTimer class implements a
stopwatch using TimeTicks::HighResNow() for high resolution, monotonic
timing.

Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime()
methods to actually return the time relative to the unix epoch as stated
in the documentation (previously that was relative to some arbitrary
point in time, i.e. boot time).

The previous Windows issues have been resolved, and we now use GetTickCount64()
on Windows Vista and later, falling back to timeGetTime() with rollover
protection for earlier Windows versions.

BUG=v8:2853
R=machenbach@chromium.org, yurys@chromium.org

Review URL: https://codereview.chromium.org/23490015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 09:15:13 +00:00
bmeurer@chromium.org
adab11d0f9 Revert "Cross-compiling from Linux to Android requires -lrt for the host toolset.", "Fix Visual Studio debug build after r16398." and "Reland "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class.""
This reverts commit r16398, r16399 and r16402 for breaking the Windows
WebKit tests. Will reland fix which doesn't use High Resolution Timer
for ElapsedTimer (we suspect QueryPerformanceCounter overhead is
responsible for test breakage).

TBR=machenbach@chromium.org

Review URL: https://codereview.chromium.org/23710002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 14:32:08 +00:00
bmeurer@chromium.org
e2b4525397 Reland "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class."
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(),
which are broken in several ways. The ElapsedTimer class implements a
stopwatch using TimeTicks::HighResNow() for high resolution, monotonic
timing.

Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime()
methods to actually return the time relative to the unix epoch as stated
in the documentation (previously that was relative to some arbitrary
point in time, i.e. boot time).

BUG=v8:2853
R=machenbach@chromium.org

Review URL: https://codereview.chromium.org/23469013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 13:03:06 +00:00
bmeurer@chromium.org
1d3f6815e3 Revert "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class."
This reverts commit r16390 for breaking the Windows build. Will
reland fixed version, which also uses the platform/ folder instead
of time/ folder as per offline discussion.

TBR=machenbach@chromium.org

Review URL: https://codereview.chromium.org/23690003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 11:38:20 +00:00
bmeurer@chromium.org
fa5216a145 Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class.
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(),
which are broken in several ways. The ElapsedTimer class implements a
stopwatch using TimeTicks::HighResNow() for high resolution, monotonic
timing.

Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime()
methods to actually return the time relative to the unix epoch as stated
in the documentation (previously that was relative to some arbitrary
point in time, i.e. boot time).

BUG=v8:2853
R=machenbach@chromium.org, yurys@chromium.org

Committed: https://code.google.com/p/v8/source/detail?r=16388

Review URL: https://codereview.chromium.org/23295034

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 11:06:11 +00:00
bmeurer@chromium.org
cfb126c52a Revert "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class."
This reverts commit r16388 for breaking build due to merge typo,
will reland with typo fixed.

TBR=machenbach@chromium.org

Review URL: https://codereview.chromium.org/23698002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 11:04:40 +00:00
bmeurer@chromium.org
8faf4d4291 Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class.
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(),
which are broken in several ways. The ElapsedTimer class implements a
stopwatch using TimeTicks::HighResNow() for high resolution, monotonic
timing.

Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime()
methods to actually return the time relative to the unix epoch as stated
in the documentation (previously that was relative to some arbitrary
point in time, i.e. boot time).

BUG=v8:2853
R=machenbach@chromium.org, yurys@chromium.org

Review URL: https://codereview.chromium.org/23295034

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 10:59:07 +00:00