src/os/solaris/vm/os_solaris.cpp

changeset 1329
665be97e8704
parent 1126
956304450e80
child 1552
95e9083cf4a7
     1.1 --- a/src/os/solaris/vm/os_solaris.cpp	Sun Jul 26 12:59:41 2009 -0700
     1.2 +++ b/src/os/solaris/vm/os_solaris.cpp	Sun Jul 26 16:40:14 2009 -0700
     1.3 @@ -1643,7 +1643,8 @@
     1.4  inline hrtime_t getTimeNanos() {
     1.5    if (VM_Version::supports_cx8()) {
     1.6      const hrtime_t now = gethrtime();
     1.7 -    const hrtime_t prev = max_hrtime;
     1.8 +    // Use atomic long load since 32-bit x86 uses 2 registers to keep long.
     1.9 +    const hrtime_t prev = Atomic::load((volatile jlong*)&max_hrtime);
    1.10      if (now <= prev)  return prev;   // same or retrograde time;
    1.11      const hrtime_t obsv = Atomic::cmpxchg(now, (volatile jlong*)&max_hrtime, prev);
    1.12      assert(obsv >= prev, "invariant");   // Monotonicity

mercurial