Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/ikvm-fork.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjfrijters <jfrijters>2007-06-29 12:48:22 +0400
committerjfrijters <jfrijters>2007-06-29 12:48:22 +0400
commit42d9acd3330b1fa0dfc9b30daf0be176f3dc2dd4 (patch)
tree096ac4ac389c675b3787155e91beec376b09bb65 /openjdk/map.xml
parent506e7a658426d3c9e13ec4414c9285690f7f25c1 (diff)
- Imported a modified version of AbstractQueuedSynchronizer that is more efficient and doesn't use reflection & unsafe to reduce initialization order dependencies.
- Changed unsafe to use more efficient internal helper class to copy Field and make it accessible (this also reduces initialization order dependencies).
Diffstat (limited to 'openjdk/map.xml')
-rw-r--r--openjdk/map.xml50
1 files changed, 50 insertions, 0 deletions
diff --git a/openjdk/map.xml b/openjdk/map.xml
index 604a6632..20c757ce 100644
--- a/openjdk/map.xml
+++ b/openjdk/map.xml
@@ -1202,6 +1202,56 @@
</body>
</method>
</class>
+ <class name="java.util.concurrent.locks.AbstractQueuedSynchronizer">
+ <method name="compareAndSetState" sig="(II)Z">
+ <body>
+ <ldarg_0 />
+ <ldflda class="java.util.concurrent.locks.AbstractQueuedSynchronizer" name="state" sig="I" />
+ <ldarg_2 />
+ <ldarg_1 />
+ <call type="System.Threading.Interlocked" name="CompareExchange" sig="System.Int32&amp;;System.Int32;System.Int32" />
+ <ldarg_1 />
+ <ceq />
+ <ret />
+ </body>
+ </method>
+ <method name="compareAndSetHead" sig="(Ljava.util.concurrent.locks.AbstractQueuedSynchronizer$Node;)Z">
+ <body>
+ <ldarg_0 />
+ <ldflda class="java.util.concurrent.locks.AbstractQueuedSynchronizer" name="head" sig="Ljava.lang.Object;" />
+ <ldarg_1 />
+ <ldnull />
+ <call type="System.Threading.Interlocked" name="CompareExchange" sig="System.Object&amp;;System.Object;System.Object" />
+ <ldnull />
+ <ceq />
+ <ret />
+ </body>
+ </method>
+ <method name="compareAndSetTail" sig="(Ljava.util.concurrent.locks.AbstractQueuedSynchronizer$Node;Ljava.util.concurrent.locks.AbstractQueuedSynchronizer$Node;)Z">
+ <body>
+ <ldarg_0 />
+ <ldflda class="java.util.concurrent.locks.AbstractQueuedSynchronizer" name="tail" sig="Ljava.lang.Object;" />
+ <ldarg_2 />
+ <ldarg_1 />
+ <call type="System.Threading.Interlocked" name="CompareExchange" sig="System.Object&amp;;System.Object;System.Object" />
+ <ldarg_1 />
+ <ceq />
+ <ret />
+ </body>
+ </method>
+ <method name="compareAndSetWaitStatus" sig="(Ljava.util.concurrent.locks.AbstractQueuedSynchronizer$Node;II)Z">
+ <body>
+ <ldarg_0 />
+ <ldflda class="java.util.concurrent.locks.AbstractQueuedSynchronizer$Node" name="waitStatus" sig="I" />
+ <ldarg_2 />
+ <ldarg_1 />
+ <call type="System.Threading.Interlocked" name="CompareExchange" sig="System.Int32&amp;;System.Int32;System.Int32" />
+ <ldarg_1 />
+ <ceq />
+ <ret />
+ </body>
+ </method>
+ </class>
<class name="java.util.concurrent.locks.LockSupport">
<method name="cmpxchgParkState" sig="(Ljava.lang.Thread;II)I">
<body>