Fix a PAL spin lock issue (dotnet/coreclr#19604)
authorKoundinya Veluri <kouvel@users.noreply.github.com>
Wed, 22 Aug 2018 20:15:46 +0000 (13:15 -0700)
committerGitHub <noreply@github.com>
Wed, 22 Aug 2018 20:15:46 +0000 (13:15 -0700)
Fix for https://github.com/dotnet/coreclr/issues/18486
- Lock release needs to be at least volatile

Commit migrated from https://github.com/dotnet/coreclr/commit/36f66bf5b6e7e8c6abb839d3f22723d0a3318dd6

src/coreclr/src/pal/src/synchobj/mutex.cpp

index f201687..bbc3e2d 100644 (file)
@@ -804,7 +804,7 @@ void SPINLOCKAcquire (LONG * lock, unsigned int flags)
 
 void SPINLOCKRelease (LONG * lock)
 {
-    *lock = 0;
+    VolatileStore(lock, 0);
 }
 
 DWORD SPINLOCKTryAcquire (LONG * lock)