Index: runtime/vm/atomic_win.h |
diff --git a/runtime/vm/atomic_win.h b/runtime/vm/atomic_win.h |
index 156303593f75d8fbb86a8f8e290e2f797ca03304..38ec10a1f8996841078d0dec585ed38f8fe84601 100644 |
--- a/runtime/vm/atomic_win.h |
+++ b/runtime/vm/atomic_win.h |
@@ -41,6 +41,16 @@ inline void AtomicOperations::IncrementBy(intptr_t* p, intptr_t value) { |
} |
+inline void AtomicOperations::IncrementInt64By(int64_t* p, int64_t value) { |
+#if defined(HOST_ARCH_IA32) || defined(HOST_ARCH_X64) |
+ InterlockedExchangeAdd64(reinterpret_cast<LONGLONG*>(p), |
+ static_cast<LONGLONG>(value)); |
+#else |
+#error Unsupported host architecture. |
+#endif |
+} |
+ |
+ |
inline uintptr_t AtomicOperations::FetchAndDecrement(uintptr_t* p) { |
#if defined(HOST_ARCH_X64) |
return static_cast<uintptr_t>( |