SourceForge: jikesrvm/jikesrvm: changeset 10357:ae1fdcaff58e
Actually handle soft handshake requests on enterNative, instead of just saying we have.
authorDaniel Frampton
Mon Nov 15 04:56:11 2010 +0000 (18 months ago)
changeset 10357ae1fdcaff58e
parent 10356 6ab3c505b0d2
child 10358 5e0cc9b2c10f
Actually handle soft handshake requests on enterNative, instead of just saying we have.
MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/Collection.java
rvm/src/org/jikesrvm/scheduler/RVMThread.java
     1.1 --- a/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/Collection.java	Mon Nov 08 19:10:52 2010 +0000
     1.2 +++ b/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/Collection.java	Mon Nov 15 04:56:11 2010 +0000
     1.3 @@ -138,14 +138,13 @@
     1.4      new RVMThread.SoftHandshakeVisitor() {
     1.5        @Uninterruptible
     1.6        public boolean checkAndSignal(RVMThread t) {
     1.7 -        // PNT: maybe we should return false if it's a GC thread?
     1.8 -        t.flushRequested=true;
     1.9 +        t.flushRequested = true;
    1.10          return true;
    1.11        }
    1.12        @Uninterruptible
    1.13        public void notifyStuckInNative(RVMThread t) {
    1.14          t.flush();
    1.15 -        t.flushRequested=false;
    1.16 +        t.flushRequested = false;
    1.17        }
    1.18        @Uninterruptible
    1.19        public boolean includeThread(RVMThread t) {
     2.1 --- a/rvm/src/org/jikesrvm/scheduler/RVMThread.java	Mon Nov 08 19:10:52 2010 +0000
     2.2 +++ b/rvm/src/org/jikesrvm/scheduler/RVMThread.java	Mon Nov 15 04:56:11 2010 +0000
     2.3 @@ -1845,6 +1845,7 @@
     2.4        setExecStatus(BLOCKED_IN_NATIVE);
     2.5      }
     2.6      acknowledgeBlockRequests();
     2.7 +    handleHandshakeRequest();
     2.8      commitSoftRendezvous = softRendezvousCheckAndClear();
     2.9      monitor().unlock();
    2.10      if (traceBlock)
    2.11 @@ -3389,6 +3390,7 @@
    2.12      // process memory management requests
    2.13      if (flushRequested && activeMutatorContext) {
    2.14        MemoryManager.flushMutatorContext();
    2.15 +      flushRequested = false;
    2.16      }
    2.17      // not really a "soft handshake" request but we handle it here anyway
    2.18      if (asyncDebugRequestedForThisThread) {