Fix a PAL spin lock issue (#62)
authorKoundinya Veluri <kouvel@users.noreply.github.com>
Thu, 23 Aug 2018 05:13:28 +0000 (22:13 -0700)
committerMike McLaughlin <mikem@microsoft.com>
Thu, 23 Aug 2018 05:13:28 +0000 (22:13 -0700)
Fix for https://github.com/dotnet/coreclr/issues/18486
- Lock release needs to be at least volatile

coreclr master PR: https://github.com/dotnet/coreclr/pull/19604

src/pal/src/thread/thread.cpp

index 175ff0ad63f6c2af1b8c20a361fff4a07993ce32..663dd3573dbb1455069f9be06d9bacd2bfc6e375 100644 (file)
@@ -458,7 +458,7 @@ void SPINLOCKAcquire (LONG * lock, unsigned int flags)
 
 void SPINLOCKRelease (LONG * lock)
 {
-    *lock = 0;
+    VolatileStore(lock, 0);
 }
 
 DWORD SPINLOCKTryAcquire (LONG * lock)