summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alexrp@xamarin.com>2013-09-25 20:31:06 +0200
committerJo Shields <directhex@apebox.org>2013-10-23 15:11:56 +0100
commit2676ce49b2f4082f79ff6991734fbc8b1c94c79d (patch)
treee9c35ce29b6f88532011e4fa5c2c2a0b769028a8
parent413523f8392604551b2ffb29528e2ae3b26bfb77 (diff)
downloadmono-2676ce49b2f4082f79ff6991734fbc8b1c94c79d.tar.gz
Use InterlockedAdd () for Interlocked.Add (int&, int).
(cherry picked from commit 89a99c26341d0c09e30fb263c5a08fe80aa21369)
-rwxr-xr-xmono/metadata/threads.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/mono/metadata/threads.c b/mono/metadata/threads.c
index 4f710ce6e9..9e5776985d 100755
--- a/mono/metadata/threads.c
+++ b/mono/metadata/threads.c
@@ -1943,14 +1943,7 @@ ves_icall_System_Threading_Interlocked_Add_Int (gint32 *location, gint32 value)
mono_raise_exception (mono_get_exception_not_implemented (NULL));
return 0;
#else
- gint32 orig;
-
- mono_interlocked_lock ();
- orig = *location;
- *location = orig + value;
- mono_interlocked_unlock ();
-
- return orig + value;
+ return InterlockedAdd (location, value);
#endif
}