Use InterlockedIncrement64 () for Interlocked.Increment (long&).
authorAlex Rønne Petersen <alexrp@xamarin.com>
Wed, 25 Sep 2013 18:20:20 +0000 (20:20 +0200)
committerAlex Rønne Petersen <alexrp@xamarin.com>
Mon, 21 Oct 2013 15:59:27 +0000 (17:59 +0200)
mono/metadata/threads.c

index 52209cc7bd9ef04c97296995d92c1a0031a64e59..e81f3dcf6c6d85a1b9679b999bf6816bfd7e5af5 100755 (executable)
@@ -1789,16 +1789,7 @@ gint32 ves_icall_System_Threading_Interlocked_Increment_Int (gint32 *location)
 
 gint64 ves_icall_System_Threading_Interlocked_Increment_Long (gint64 *location)
 {
-       gint64 ret;
-
-       mono_interlocked_lock ();
-
-       ret = ++ *location;
-       
-       mono_interlocked_unlock ();
-
-       
-       return ret;
+       return InterlockedIncrement64 (location);
 }
 
 gint32 ves_icall_System_Threading_Interlocked_Decrement_Int (gint32 *location)