< prev index next >

test/hotspot/jtreg/vmTestbase/nsk/share/jpda/StateTestThread.java

Print this page
rev 56807 : [mq]: 8232684-v2


  94 
  95         // try acquire the same lock as auxiliaryThread, switch state to 'wait on monitor'
  96         synchronized (this) {
  97 
  98         }
  99     }
 100 
 101     private int currentState = 1;
 102 
 103     public void nextState() {
 104         // check is thread states change as expected
 105         if (isExecutedWithErrors)
 106             throw new TestBug(errorMessage);
 107 
 108         switch (currentState++) {
 109         case 1:
 110             // start thread
 111             start();
 112 
 113             while (!isRunning)
 114                 yield();
 115 
 116             break;
 117         case 2:
 118             // stop running
 119             isRunning = false;
 120 
 121             while (this.getState() != Thread.State.TIMED_WAITING)
 122                 yield();
 123 
 124             break;
 125         case 3:
 126             waitState = true;
 127 
 128             // stop sleeping
 129             interrupt();
 130 
 131             while (getState() != Thread.State.WAITING)
 132                 yield();
 133 
 134             break;
 135         case 4:
 136             waitState = false;
 137 
 138             // stop wait
 139             synchronized (waitOnObject) {
 140                 waitOnObject.notify();
 141             }
 142 
 143             while (!readyToBeBlocked || (getState() != Thread.State.BLOCKED))
 144                 yield();
 145 
 146             break;
 147         case 5:
 148             // let StateTestThread thread acquire lock
 149             auxiliaryThread.releaseLock();
 150             try {
 151                 join();
 152             } catch (InterruptedException e) {
 153                 throw new TestBug("Unexpected exception: " + e);
 154             }
 155             break;
 156 
 157         default:
 158             throw new TestBug("Invalid thread state");
 159         }
 160     }
 161 }


  94 
  95         // try acquire the same lock as auxiliaryThread, switch state to 'wait on monitor'
  96         synchronized (this) {
  97 
  98         }
  99     }
 100 
 101     private int currentState = 1;
 102 
 103     public void nextState() {
 104         // check is thread states change as expected
 105         if (isExecutedWithErrors)
 106             throw new TestBug(errorMessage);
 107 
 108         switch (currentState++) {
 109         case 1:
 110             // start thread
 111             start();
 112 
 113             while (!isRunning)
 114                 Thread.yield();
 115 
 116             break;
 117         case 2:
 118             // stop running
 119             isRunning = false;
 120 
 121             while (this.getState() != Thread.State.TIMED_WAITING)
 122                 Thread.yield();
 123 
 124             break;
 125         case 3:
 126             waitState = true;
 127 
 128             // stop sleeping
 129             interrupt();
 130 
 131             while (getState() != Thread.State.WAITING)
 132                 Thread.yield();
 133 
 134             break;
 135         case 4:
 136             waitState = false;
 137 
 138             // stop wait
 139             synchronized (waitOnObject) {
 140                 waitOnObject.notify();
 141             }
 142 
 143             while (!readyToBeBlocked || (getState() != Thread.State.BLOCKED))
 144                 Thread.yield();
 145 
 146             break;
 147         case 5:
 148             // let StateTestThread thread acquire lock
 149             auxiliaryThread.releaseLock();
 150             try {
 151                 join();
 152             } catch (InterruptedException e) {
 153                 throw new TestBug("Unexpected exception: " + e);
 154             }
 155             break;
 156 
 157         default:
 158             throw new TestBug("Invalid thread state");
 159         }
 160     }
 161 }
< prev index next >