#include <mono/metadata/metadata-internals.h>
#include <mono/metadata/marshal.h>
#include <mono/metadata/runtime.h>
+#include <mono/utils/atomic.h>
#include <mono/utils/mono-logger-internal.h>
#include <mono/utils/mono-memory-model.h>
#include <mono/utils/mono-time.h>
void
mono_gc_wbarrier_generic_store_atomic (gpointer ptr, MonoObject *value)
{
- mono_atomic_store_release ((volatile MonoObject **) ptr, value);
+ InterlockedWritePointer (ptr, value);
}
void
void
mono_gc_wbarrier_generic_store_atomic (gpointer ptr, MonoObject *value)
{
- mono_atomic_store_release ((volatile MonoObject **) ptr, value);
+ InterlockedWritePointer (ptr, value);
}
void
SGEN_LOG (8, "Wbarrier atomic store at %p to %p (%s)", ptr, value, value ? safe_name (value) : "null");
- mono_atomic_store_release ((volatile MonoObject **) ptr, value);
+ InterlockedWritePointer (ptr, value);
if (ptr_in_nursery (value))
mono_gc_wbarrier_generic_nostore (ptr);