Skip to content

Commit a14bd3c

Browse files
committed
Important annotations.
1 parent f65ff69 commit a14bd3c

17 files changed

+37
-3
lines changed

MMTk/src/org/mmtk/plan/ParallelCollector.java

+1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public void run() {
5252
}
5353

5454
/** Perform a single garbage collection */
55+
@Unpreemptible
5556
public void collect() {
5657
VM.assertions.fail("Collector has not implemented collectionPhase");
5758
}

MMTk/src/org/mmtk/plan/Simple.java

+10
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,16 @@ public void collectionPhase(short phaseId) {
264264
}
265265

266266
/**
267+
* Perform a (global) unpreemptible collection phase.
268+
*/
269+
@Unpreemptible
270+
public void unpreemptibleCollectionPhase(short phaseId) {
271+
Log.write("Unpreemptible Global phase "); Log.write(Phase.getName(phaseId));
272+
Log.writeln(" not handled.");
273+
VM.assertions.fail("Unpreemptible Global phase not handled!");
274+
}
275+
276+
/*
267277
* Update the nursery zeroing approach based on option settings.
268278
*
269279
* @param nurserySpace The space to apply the changes to.

MMTk/src/org/mmtk/plan/StopTheWorldCollector.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public abstract class StopTheWorldCollector extends SimpleCollector {
3535
*/
3636

3737
/** Perform garbage collection */
38-
@Override
38+
@Unpreemptible
3939
public void collect() {
4040
Phase.beginNewPhaseStack(Phase.scheduleComplex(global().collection));
4141
}

MMTk/src/org/mmtk/plan/nogc/NoGC.java

+8
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,14 @@ public final void collectionPhase(short phaseId) {
7070
*/
7171
}
7272

73+
/**
74+
* Perform a (global) unpreemptible collection phase.
75+
*/
76+
@Unpreemptible
77+
public void unpreemptibleCollectionPhase(short phase) {
78+
if (VM.VERIFY_ASSERTIONS) VM.assertions._assert(false);
79+
}
80+
7381
/*****************************************************************************
7482
* Accounting
7583
*/

MMTk/src/org/mmtk/plan/refcount/RCBaseCollector.java

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.mmtk.vm.VM;
2424
import org.vmmagic.pragma.Inline;
2525
import org.vmmagic.pragma.Uninterruptible;
26+
import org.vmmagic.pragma.Unpreemptible;
2627
import org.vmmagic.unboxed.ObjectReference;
2728

2829
/**
@@ -79,6 +80,7 @@ public RCBaseCollector() {
7980
/**
8081
* {@inheritDoc}
8182
*/
83+
@Unpreemptible
8284
@Override
8385
public void collect() {
8486
if (RCBase.BUILD_FOR_GENRC) Phase.beginNewPhaseStack(Phase.scheduleComplex(global().genRCCollection));

libraryInterface/Common/src/java/lang/ref/PhantomReference.java

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
import org.jikesrvm.mm.mminterface.MemoryManager;
1616
import org.vmmagic.pragma.ReferenceFieldsVary;
17+
import org.vmmagic.pragma.Uninterruptible;
1718

1819
/**
1920
* Implementation of java.lang.ref.PhantomReference for JikesRVM.

rvm/src/org/jikesrvm/CommandLineArgs.java

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
import static org.jikesrvm.runtime.SysCall.sysCall;
2525
import org.jikesrvm.scheduler.RVMThread;
26+
import org.vmmagic.pragma.NonReplicatingAllocation;
2627

2728
/**
2829
* Command line option processing iwth arbitrary prefix support.

rvm/src/org/jikesrvm/classloader/MethodReference.java

-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ public final class MethodReference extends MemberReference {
4141
* Find or create a method reference
4242
* @see MemberReference#findOrCreate(TypeReference, Atom, Atom)
4343
*/
44-
@Pure
4544
public static MethodReference findOrCreate(TypeReference tRef, Atom mn, Atom md) {
4645
return MemberReference.findOrCreate(tRef, mn, md).asMethodReference();
4746
}

rvm/src/org/jikesrvm/classloader/Primitive.java

+1
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,7 @@ public RVMField[] getStaticFields() {
377377
*/
378378
@Override
379379
@Pure
380+
@Uninterruptible
380381
public RVMField[] getInstanceFields() {
381382
return emptyVMField;
382383
}

rvm/src/org/jikesrvm/classloader/RVMArray.java

+1
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ public RVMField[] getStaticFields() {
251251
*/
252252
@Override
253253
@Pure
254+
@Uninterruptible
254255
public RVMField[] getInstanceFields() {
255256
return RVMType.JavaLangObjectType.getInstanceFields();
256257
}

rvm/src/org/jikesrvm/classloader/RVMClass.java

+1
Original file line numberDiff line numberDiff line change
@@ -712,6 +712,7 @@ public RVMField[] getStaticFields() {
712712
*/
713713
@Override
714714
@Pure
715+
@Uninterruptible
715716
public RVMField[] getInstanceFields() {
716717
if (VM.VerifyAssertions) VM._assert(isResolved());
717718
return instanceFields;

rvm/src/org/jikesrvm/classloader/RVMField.java

+3
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,15 @@ public int getNumberOfStackSlots() {
143143
/**
144144
* How many bytes of memory words do value of this type take?
145145
*/
146+
@Uninterruptible
146147
public int getSize() {
147148
return size;
148149
}
149150

150151
/**
151152
* Does the field hold a reference?
152153
*/
154+
@Uninterruptible
153155
public boolean isTraced() {
154156
return (reference && !isUntraced()) || madeTraced;
155157
}
@@ -228,6 +230,7 @@ public boolean isRuntimeFinal() {
228230
/**
229231
* Is this field invisible to the memory management system.
230232
*/
233+
@Uninterruptible
231234
public boolean isUntraced() {
232235
return hasUntracedAnnotation();
233236
}

rvm/src/org/jikesrvm/classloader/RVMType.java

+1
Original file line numberDiff line numberDiff line change
@@ -814,6 +814,7 @@ public boolean isAssignableFrom(RVMType type) {
814814
* Non-static fields of this class/array type
815815
* (composed with supertypes, if any).
816816
*/
817+
@Uninterruptible
817818
public abstract RVMField[] getInstanceFields();
818819

819820
/**

rvm/src/org/jikesrvm/classloader/UnboxedType.java

+1
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,7 @@ public RVMField[] getStaticFields() {
323323
*/
324324
@Override
325325
@Pure
326+
@Uninterruptible
326327
public RVMField[] getInstanceFields() {
327328
return emptyVMField;
328329
}

rvm/src/org/jikesrvm/compilers/common/CompiledMethods.java

+2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@
2727
import org.jikesrvm.jni.JNICompiledMethod;
2828
import org.jikesrvm.runtime.Magic;
2929
import org.jikesrvm.runtime.Memory;
30+
import org.vmmagic.pragma.NonMovingAllocation;
3031
import org.vmmagic.pragma.Uninterruptible;
3132
import org.vmmagic.unboxed.Address;
33+
import org.vmmagic.unboxed.Offset;
3234

3335
/**
3436
* Manage pool of compiled methods. <p>

rvm/src/org/jikesrvm/objectmodel/JavaHeader.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -520,7 +520,7 @@ public static int getObjectHashCode(Object o) {
520520

521521
/** Install a new hashcode (only used if !ADDRESS_BASED_HASHING) */
522522
@NoInline
523-
@Interruptible
523+
@Uninterruptible
524524
protected static int installHashCode(Object o) {
525525
Word hashCode;
526526
do {

rvm/src/org/jikesrvm/scheduler/SpinLock.java

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.jikesrvm.runtime.Entrypoints;
1919
import org.vmmagic.unboxed.Address;
2020
import org.vmmagic.unboxed.Offset;
21+
import org.vmmagic.pragma.NonMoving;
2122
import org.vmmagic.pragma.Uninterruptible;
2223
import org.vmmagic.pragma.Entrypoint;
2324
import org.vmmagic.pragma.Untraced;
@@ -84,6 +85,7 @@
8485
* @see Monitor
8586
* @see Lock */
8687
@Uninterruptible
88+
@NonMoving
8789
public final class SpinLock implements Constants {
8890
/**
8991
* Should contending <code>RVMThread</code>s spin on thread local addresses (true)

0 commit comments

Comments
 (0)