@Test public void testOpen() throws Exception { new Thread() { @Override public void run() { conditionVariable.open(); waiter.resume(); } }.start(); conditionVariable.block(); waiter.await(); }
synchronized void open() { boolean old = mCondition; mCondition = true; if (!old) { this.notify(); } }
ConditionVariable { synchronized void open() { boolean old = mCondition; mCondition = true; if (!old) { this.notify(); } } }
ConditionVariable { synchronized void open() { boolean old = mCondition; mCondition = true; if (!old) { this.notify(); } }  }
ConditionVariable { synchronized void open() { boolean old = mCondition; mCondition = true; if (!old) { this.notify(); } }   }
ConditionVariable { synchronized void open() { boolean old = mCondition; mCondition = true; if (!old) { this.notify(); } }    }