1 package gov.nasa.jpf.jvm; 20 21 import gov.nasa.jpf.Config; 22 23 24 28 public class DefaultScheduler extends Scheduler { 29 private int thread; 30 private int random; 31 private boolean lastRandom; 32 33 public DefaultScheduler (Config config) { 34 initialize(); 35 } 36 37 public int getRandom () { 38 return random; 39 } 40 41 public int getThread () { 42 return thread; 43 } 44 45 50 public void initialize () { 51 thread = 0; 52 random = -1; 53 lastRandom = true; 54 } 55 56 61 public ThreadInfo locateThread (SystemState ss) { 62 for (int n = ss.getThreadCount(); thread < n; thread++) { 63 ThreadInfo th = ss.getThreadInfo(thread); 64 65 if (th.isRunnable()) { 66 return th; 67 } 68 } 69 70 return null; 71 } 72 73 79 public void next () { 80 if (lastRandom) { 81 random = -1; 82 thread++; 83 } else { 84 random++; 85 } 86 } 87 88 public int random (int max) { 89 if (random == -1) { 90 random = 0; 91 } 92 93 lastRandom = (random == max - 1); 94 95 return random; 96 } 97 } 98 | Popular Tags |