Revision: 15686
http://jikesrvm.svn.sourceforge.net/jikesrvm/?rev=15686&view=revAuthor: pizlo
Date: 2009-05-08 06:47:00 +0000 (Fri, 08 May 2009)
Log Message:
-----------
Fix Harmony, I think
Modified Paths:
--------------
rvmroot/trunk/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/ReferenceProcessor.java
rvmroot/trunk/libraryInterface/Common/src/java/lang/ref/Reference.java
rvmroot/trunk/libraryInterface/Harmony/ASF/src/java/lang/ref/ReferenceQueue.java
rvmroot/trunk/rvm/src/Dummy.java
Modified: rvmroot/trunk/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/ReferenceProcessor.java
===================================================================
--- rvmroot/trunk/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/ReferenceProcessor.java 2009-05-07 22:40:00 UTC (rev 15685)
+++ rvmroot/trunk/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/ReferenceProcessor.java 2009-05-08 06:47:00 UTC (rev 15686)
@@ -342,7 +342,7 @@
@Unpreemptible
public boolean enqueueReference(ObjectReference addr) {
Reference<?> reference = (Reference<?>)addr.toObject();
- return reference.enqueue();
+ return reference.enqueueInternal();
}
/**
Modified: rvmroot/trunk/libraryInterface/Common/src/java/lang/ref/Reference.java
===================================================================
--- rvmroot/trunk/libraryInterface/Common/src/java/lang/ref/Reference.java 2009-05-07 22:40:00 UTC (rev 15685)
+++ rvmroot/trunk/libraryInterface/Common/src/java/lang/ref/Reference.java 2009-05-08 06:47:00 UTC (rev 15686)
@@ -17,7 +17,6 @@
import org.jikesrvm.runtime.Magic;
import org.vmmagic.pragma.Inline;
import org.vmmagic.pragma.Uninterruptible;
-import org.vmmagic.pragma.UnpreemptibleNoWarn;
import org.vmmagic.unboxed.Address;
/**
@@ -109,7 +108,6 @@
* that users might find confusing. We think the problem is actually
* not a 'real' problem...
*/
- @UnpreemptibleNoWarn("Call out to ReferenceQueue API")
public boolean enqueue() {
if (nextOnQueue == null && queue != null) {
queue.enqueue(this);
@@ -119,6 +117,16 @@
return false;
}
+ @Uninterruptible
+ public boolean enqueueInternal() {
+ if (nextOnQueue == null && queue != null) {
+ queue.enqueueInternal(this);
+ queue = null;
+ return true;
+ }
+ return false;
+ }
+
// TODO: Harmony
void dequeue() {
return;
Modified: rvmroot/trunk/libraryInterface/Harmony/ASF/src/java/lang/ref/ReferenceQueue.java
===================================================================
--- rvmroot/trunk/libraryInterface/Harmony/ASF/src/java/lang/ref/ReferenceQueue.java 2009-05-07 22:40:00 UTC (rev 15685)
+++ rvmroot/trunk/libraryInterface/Harmony/ASF/src/java/lang/ref/ReferenceQueue.java 2009-05-08 06:47:00 UTC (rev 15686)
@@ -21,6 +21,8 @@
package java.lang.ref;
+import org.vmmagic.pragma.UninterruptibleNoWarn;
+
/**
* @com.intel.drl.spec_ref
*/
@@ -78,4 +80,9 @@
notify();
return true;
}
+
+ @UninterruptibleNoWarn("This is a lie")
+ boolean enqueueInternal(Reference<? extends T> ref) {
+ return enqueue(ref);
+ }
}
Modified: rvmroot/trunk/rvm/src/Dummy.java
===================================================================
--- rvmroot/trunk/rvm/src/Dummy.java 2009-05-07 22:40:00 UTC (rev 15685)
+++ rvmroot/trunk/rvm/src/Dummy.java 2009-05-08 06:47:00 UTC (rev 15686)
@@ -39,4 +39,5 @@
static org.vmmagic.unboxed.WordArray x;
static org.vmmagic.unboxed.OffsetArray y;
static org.vmmagic.unboxed.ExtentArray z;
+ static org.jikesrvm.scheduler.LightMonitor zz;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image
processing features enabled.
http://p.sf.net/sfu/kodak-com_______________________________________________
Jikesrvm-commits mailing list
Jikesrvm-commits@...
https://lists.sourceforge.net/lists/listinfo/jikesrvm-commits