adding a test case
[IRC.git] / Robust / TransSim / ObjectInfo.java
index 0357dbe0bd24cfce3f1195bcbcf2b1c020ba2b08..aa689127f8a6529e70bca85ecbecb58f5d1aac3d 100644 (file)
@@ -3,11 +3,35 @@ import java.util.*;
 public class ObjectInfo {
   FlexScheduler fs;
   Set waiters;
+  int aborts;
+  int commits;
+  boolean riskyflag;
 
   public ObjectInfo(FlexScheduler fs) {
     this.fs=fs;
     threadowner=-1;
     this.waiters=new HashSet();
+    if (fs.isLock()&&fs.abortThreshold==0)
+      riskyflag=true;
+  }
+
+  public boolean isRisky() {
+    return riskyflag;
+  }
+
+  public void setRisky(boolean risky) {
+    this.riskyflag=risky;
+  }
+
+  public void recordAbort() {
+    aborts++;
+    if (fs.isLock()&&(aborts>fs.abortThreshold)&&
+       aborts>(commits*fs.abortRatio/100))
+      setRisky(true);
+  }
+
+  public void recordCommit() {
+    commits++;
   }
 
   public void addWaiter(FlexScheduler.Event ev) {