+ System.out.println("Stalltime="+ls7.getStallTime()+" Backofftime="+ls7.getBackoffTime());
+ System.out.println("Abortedtime="+ls7.getAbortedTime());
+ ls7=null;
+
+ ls8.join();
+ System.out.println("Random Abort="+ls8.getTime());
+ System.out.println("Aborts="+ls8.getAborts()+" Commit="+ls8.getCommits());
+ System.out.println("Stalltime="+ls8.getStallTime()+" Backofftime="+ls8.getBackoffTime());
+ System.out.println("Abortedtime="+ls8.getAbortedTime());
+ ls8=null;
+ }
+
+ public static void p3(Executor e) throws Exception {
+ FlexScheduler ls9=new FlexScheduler(e, FlexScheduler.KARMA, null);
+ ls9.start();
+
+ FlexScheduler ls10=new FlexScheduler(e, FlexScheduler.POLITE, null);
+ ls10.start();
+
+ FlexScheduler ls11=new FlexScheduler(e, FlexScheduler.ERUPTION, null);
+ ls11.start();
+
+
+
+ ls9.join();
+ System.out.println("Karma Abort="+ls9.getTime());
+ System.out.println("Aborts="+ls9.getAborts()+" Commit="+ls9.getCommits());
+ System.out.println("Stalltime="+ls9.getStallTime()+" Backofftime="+ls9.getBackoffTime());
+ System.out.println("Abortedtime="+ls9.getAbortedTime());
+ ls9=null;
+
+ ls10.join();
+ System.out.println("Polite Abort="+ls10.getTime());
+ System.out.println("Aborts="+ls10.getAborts()+" Commit="+ls10.getCommits());
+ System.out.println("Stalltime="+ls10.getStallTime()+" Backofftime="+ls10.getBackoffTime());
+ System.out.println("Abortedtime="+ls10.getAbortedTime());
+ ls10=null;
+
+ ls11.join();
+ System.out.println("Eruption Abort="+ls11.getTime());
+ System.out.println("Aborts="+ls11.getAborts()+" Commit="+ls11.getCommits());
+ System.out.println("Stalltime="+ls11.getStallTime()+" Backofftime="+ls11.getBackoffTime());
+ System.out.println("Abortedtime="+ls11.getAbortedTime());
+ }
+
+ public static void p4(Executor e) throws Exception {
+ FlexScheduler ls12=new FlexScheduler(e, FlexScheduler.THREAD, null);
+ ls12.start();
+ FlexScheduler ls13=new FlexScheduler(e, FlexScheduler.ATTACKTIME, null);
+ ls13.start();
+ FlexScheduler ls14=new FlexScheduler(e, FlexScheduler.ATTACKTHREAD, null);
+ ls14.start();
+
+ ls12.join();
+ System.out.println("ThreadPriority Abort="+ls12.getTime());
+ System.out.println("Aborts="+ls12.getAborts()+" Commit="+ls12.getCommits());
+ System.out.println("Stalltime="+ls12.getStallTime()+" Backofftime="+ls12.getBackoffTime());
+ System.out.println("Abortedtime="+ls12.getAbortedTime());
+ ls12=null;
+
+ ls13.join();
+ System.out.println("AttackTime Abort="+ls13.getTime());
+ System.out.println("Aborts="+ls13.getAborts()+" Commit="+ls13.getCommits());
+ System.out.println("Stalltime="+ls13.getStallTime()+" Backofftime="+ls13.getBackoffTime());
+ System.out.println("Abortedtime="+ls13.getAbortedTime());
+ ls13=null;
+
+ ls14.join();
+ System.out.println("AttackThread Abort="+ls14.getTime());
+ System.out.println("Aborts="+ls14.getAborts()+" Commit="+ls14.getCommits());
+ System.out.println("Stalltime="+ls14.getStallTime()+" Backofftime="+ls14.getBackoffTime());
+ System.out.println("Abortedtime="+ls14.getAbortedTime());
+ ls14=null;
+ }
+
+ int[] policies=new int[]{FlexScheduler.LAZY, FlexScheduler.COMMIT, FlexScheduler.ATTACK, FlexScheduler.SUICIDE, FlexScheduler.TIMESTAMP, FlexScheduler.LOCK, FlexScheduler.LOCKCOMMIT, FlexScheduler.RANDOM, FlexScheduler.KARMA, FlexScheduler.POLITE, FlexScheduler.ERUPTION, FlexScheduler.THREAD, FlexScheduler.ATTACKTIME, FlexScheduler.ATTACKTHREAD};
+
+ public static void main(String[] args) throws Exception {
+ //time between transactions
+ //split objects
+ int splitobjects=100;//10 percent of objects special
+ int splitaccesses=100;//40 percent of accesses to special objects
+ int abortThreshold=0; //need 4 aborts to declare risky
+ int abortRatio=0;//need 40% aborts vs commits to declare risky
+ int deadlockdepth=10;
+
+ String filename=args[0];
+ Executor e=new Executor(filename);
+ System.out.println(e.maxTime());
+
+ FlexScheduler fsarray[]=new FlexScheduler[args.length-1];
+
+ for(int i=1;i<args.length;i++) {
+ fsarray[i-1]=new FlexScheduler(e, Integer.parseInt(args[i]), null);
+ fsarray[i-1].start();