summaryrefslogtreecommitdiffstats
path: root/tests/ajde/examples/spacewar/coordination/Selfex.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ajde/examples/spacewar/coordination/Selfex.java')
-rw-r--r--tests/ajde/examples/spacewar/coordination/Selfex.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/ajde/examples/spacewar/coordination/Selfex.java b/tests/ajde/examples/spacewar/coordination/Selfex.java
new file mode 100644
index 000000000..0a28e4499
--- /dev/null
+++ b/tests/ajde/examples/spacewar/coordination/Selfex.java
@@ -0,0 +1,38 @@
+
+package coordination;
+
+
+import java.lang.String;
+
+class Selfex implements Exclusion {
+ String methodName;
+ Thread thread;
+ int count = 0;
+
+ Selfex (String _methodName) {
+ methodName = _methodName;
+ }
+
+ public boolean testExclusion (String _methodName) {
+ if (count == 0)
+ return(true);
+ return (thread == Thread.currentThread());
+ }
+
+ public void enterExclusion (String _methodName) {
+ count++;
+ thread = Thread.currentThread(); // note that if count wasn't 0
+ // we aren't changing thread
+ }
+
+ public void exitExclusion (String _methodName) {
+ count--;
+ if (count == 0) // not stricly necessary, but...
+ thread = null;
+ }
+
+ public void printNames() {
+ System.out.println("Selfex name: " + methodName);
+ }
+
+}