summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alexrp@xamarin.com>2013-09-25 20:20:53 +0200
committerJo Shields <directhex@apebox.org>2013-10-23 15:10:07 +0100
commitc1a8be1097f89b2fd75e29ca32319acc27812e95 (patch)
treebfd216c25bc94435e330b7243bbc9e4a1bf6bd7e
parent07c705d468b7f42ad353eb86de2b7284693b656d (diff)
downloadmono-c1a8be1097f89b2fd75e29ca32319acc27812e95.tar.gz
Use InterlockedDecrement64 () for Interlocked.Decrement (long&).
(cherry picked from commit 15f9be5d0367b5d5ee168b038878d098ee51d5aa)
-rwxr-xr-xmono/metadata/threads.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/mono/metadata/threads.c b/mono/metadata/threads.c
index b4c7a72557..66e7f8c052 100755
--- a/mono/metadata/threads.c
+++ b/mono/metadata/threads.c
@@ -1799,15 +1799,7 @@ gint32 ves_icall_System_Threading_Interlocked_Decrement_Int (gint32 *location)
gint64 ves_icall_System_Threading_Interlocked_Decrement_Long (gint64 * location)
{
- gint64 ret;
-
- mono_interlocked_lock ();
-
- ret = -- *location;
-
- mono_interlocked_unlock ();
-
- return ret;
+ return InterlockedDecrement64 (location);
}
gint32 ves_icall_System_Threading_Interlocked_Exchange_Int (gint32 *location, gint32 value)