Mercurial > hg > graal-jvmci-8
diff src/os/solaris/vm/os_solaris.cpp @ 894:665be97e8704
6863420: os::javaTimeNanos() go backward on Solaris x86
Summary: Use new atomic long load method Atomic::load() to load max_hrtime.
Reviewed-by: never, ysr, johnc, phh, dcubed, acorn
author | kvn |
---|---|
date | Sun, 26 Jul 2009 16:40:14 -0700 |
parents | 956304450e80 |
children | 95e9083cf4a7 |
line wrap: on
line diff
--- a/src/os/solaris/vm/os_solaris.cpp Sun Jul 26 12:59:41 2009 -0700 +++ b/src/os/solaris/vm/os_solaris.cpp Sun Jul 26 16:40:14 2009 -0700 @@ -1643,7 +1643,8 @@ inline hrtime_t getTimeNanos() { if (VM_Version::supports_cx8()) { const hrtime_t now = gethrtime(); - const hrtime_t prev = max_hrtime; + // Use atomic long load since 32-bit x86 uses 2 registers to keep long. + const hrtime_t prev = Atomic::load((volatile jlong*)&max_hrtime); if (now <= prev) return prev; // same or retrograde time; const hrtime_t obsv = Atomic::cmpxchg(now, (volatile jlong*)&max_hrtime, prev); assert(obsv >= prev, "invariant"); // Monotonicity