summaryrefslogtreecommitdiff
path: root/java/JACE/Concurrency/RenewObject.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/JACE/Concurrency/RenewObject.java')
-rw-r--r--java/JACE/Concurrency/RenewObject.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/java/JACE/Concurrency/RenewObject.java b/java/JACE/Concurrency/RenewObject.java
new file mode 100644
index 00000000000..b690958968a
--- /dev/null
+++ b/java/JACE/Concurrency/RenewObject.java
@@ -0,0 +1,36 @@
+package JACE.Concurrency;
+
+import JACE.ASX.TimedWait;
+
+class RenewObject extends TimedWait
+{
+ public RenewObject (int maxYieldTo)
+ {
+ yieldTo_ = maxYieldTo;
+ }
+
+ public boolean condition ()
+ {
+ return yieldTo_ <= 0;
+ }
+
+ public void decrementYieldTo()
+ {
+ this.yieldTo_--;
+ }
+
+ public int yieldTo ()
+ {
+ return this.yieldTo_;
+ }
+
+ public RenewObject min (RenewObject other)
+ {
+ if (other.yieldTo_ < this.yieldTo_)
+ return other;
+ else
+ return this;
+ }
+
+ private int yieldTo_;
+}