Author: zoltan
Date: 2005-11-23 16:51:54 -0500 (Wed, 23 Nov 2005)
New Revision: 53418
Modified:
trunk/mono/mono/metadata/ChangeLog
trunk/mono/mono/metadata/icall.c
trunk/mono/mono/metadata/threads-types.h
trunk/mono/mono/metadata/threads.c
Log:
2005-11-23 Zoltan Varga <[EMAIL PROTECTED]>
* icall.c threads-types.h threads.c: Add Exchange<T> icall.
Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog 2005-11-23 21:48:58 UTC (rev 53417)
+++ trunk/mono/mono/metadata/ChangeLog 2005-11-23 21:51:54 UTC (rev 53418)
@@ -1,3 +1,7 @@
+2005-11-23 Zoltan Varga <[EMAIL PROTECTED]>
+
+ * icall.c threads-types.h threads.c: Add Exchange<T> icall.
+
2005-11-23 Raja R Harinath <[EMAIL PROTECTED]>
Ankit Jain <[EMAIL PROTECTED]>
Modified: trunk/mono/mono/metadata/icall.c
===================================================================
--- trunk/mono/mono/metadata/icall.c 2005-11-23 21:48:58 UTC (rev 53417)
+++ trunk/mono/mono/metadata/icall.c 2005-11-23 21:51:54 UTC (rev 53418)
@@ -6819,6 +6819,7 @@
{"CompareExchange(single&,single,single)",
ves_icall_System_Threading_Interlocked_CompareExchange_Single},
{"Decrement(int&)",
ves_icall_System_Threading_Interlocked_Decrement_Int},
{"Decrement(long&)",
ves_icall_System_Threading_Interlocked_Decrement_Long},
+ {"Exchange(T&,T)", ves_icall_System_Threading_Interlocked_Exchange_T},
{"Exchange(double&,double)",
ves_icall_System_Threading_Interlocked_Exchange_Double},
{"Exchange(int&,int)",
ves_icall_System_Threading_Interlocked_Exchange_Int},
{"Exchange(intptr&,intptr)",
ves_icall_System_Threading_Interlocked_Exchange_Object},
Modified: trunk/mono/mono/metadata/threads-types.h
===================================================================
--- trunk/mono/mono/metadata/threads-types.h 2005-11-23 21:48:58 UTC (rev
53417)
+++ trunk/mono/mono/metadata/threads-types.h 2005-11-23 21:51:54 UTC (rev
53418)
@@ -75,7 +75,8 @@
extern MonoObject
*ves_icall_System_Threading_Interlocked_CompareExchange_Object(MonoObject
**location, MonoObject *value, MonoObject *comparand);
extern gfloat
ves_icall_System_Threading_Interlocked_CompareExchange_Single(gfloat *location,
gfloat value, gfloat comparand);
extern gdouble
ves_icall_System_Threading_Interlocked_CompareExchange_Double(gdouble
*location, gdouble value, gdouble comparand);
-extern gpointer
ves_icall_System_Threading_Interlocked_CompareExchange_T(gpointer *location,
gpointer value, gpointer comparand);
+extern MonoObject*
ves_icall_System_Threading_Interlocked_CompareExchange_T(MonoObject **location,
MonoObject *value, MonoObject *comparand);
+extern MonoObject*
ves_icall_System_Threading_Interlocked_Exchange_T(MonoObject **location,
MonoObject *value);
extern gint32 ves_icall_System_Threading_Interlocked_Add_Int(gint32 *location,
gint32 value);
extern gint64 ves_icall_System_Threading_Interlocked_Add_Long(gint64
*location, gint64 value);
Modified: trunk/mono/mono/metadata/threads.c
===================================================================
--- trunk/mono/mono/metadata/threads.c 2005-11-23 21:48:58 UTC (rev 53417)
+++ trunk/mono/mono/metadata/threads.c 2005-11-23 21:51:54 UTC (rev 53418)
@@ -1253,13 +1253,22 @@
#endif
}
-gpointer ves_icall_System_Threading_Interlocked_CompareExchange_T (gpointer
*location, gpointer value, gpointer comparand)
+MonoObject*
+ves_icall_System_Threading_Interlocked_CompareExchange_T (MonoObject
**location, MonoObject *value, MonoObject *comparand)
{
MONO_ARCH_SAVE_REGS;
- return InterlockedCompareExchangePointer (location, value, comparand);
+ return InterlockedCompareExchangePointer ((gpointer *)location, value,
comparand);
}
+MonoObject*
+ves_icall_System_Threading_Interlocked_Exchange_T (MonoObject **location,
MonoObject *value)
+{
+ MONO_ARCH_SAVE_REGS;
+
+ return InterlockedExchangePointer ((gpointer *)location, value);
+}
+
gint32
ves_icall_System_Threading_Interlocked_Add_Int (gint32 *location, gint32 value)
{
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches