Explorar o código

native_clock: Use AtomicLoad128

Merry %!s(int64=4) %!d(string=hai) anos
pai
achega
c562c1d6be
Modificáronse 1 ficheiros con 2 adicións e 2 borrados
  1. 2 2
      src/common/x64/native_clock.cpp

+ 2 - 2
src/common/x64/native_clock.cpp

@@ -56,7 +56,7 @@ u64 NativeClock::GetRTSC() {
     TimePoint new_time_point{};
     TimePoint new_time_point{};
     TimePoint current_time_point{};
     TimePoint current_time_point{};
     do {
     do {
-        current_time_point.pack = time_point.pack;
+        current_time_point.pack = Common::AtomicLoad128(time_point.pack.data());
         _mm_mfence();
         _mm_mfence();
         const u64 current_measure = __rdtsc();
         const u64 current_measure = __rdtsc();
         u64 diff = current_measure - current_time_point.inner.last_measure;
         u64 diff = current_measure - current_time_point.inner.last_measure;
@@ -76,7 +76,7 @@ void NativeClock::Pause(bool is_paused) {
         TimePoint current_time_point{};
         TimePoint current_time_point{};
         TimePoint new_time_point{};
         TimePoint new_time_point{};
         do {
         do {
-            current_time_point.pack = time_point.pack;
+            current_time_point.pack = Common::AtomicLoad128(time_point.pack.data());
             new_time_point.pack = current_time_point.pack;
             new_time_point.pack = current_time_point.pack;
             _mm_mfence();
             _mm_mfence();
             new_time_point.inner.last_measure = __rdtsc();
             new_time_point.inner.last_measure = __rdtsc();