public void waitForSignal(){
synchronized (mInternalLock) {
    if (this.mTriggerState) {
      return;
    }
    try {
      mInternalLock.wait();
    }
 catch (    final InterruptedException e) {
      throw new RuntimeException(e);
    }
  }
}

public void waitForSignal ( ) { synchronized ( mInternalLock ) { if ( this . mTriggerState ) { return ; } try { mInternalLock . wait ( ) ; } catch ( final InterruptedException e ) { throw new RuntimeException ( e ) ; } } }
blocking : waits for the signal to be triggered , or returns immediately if it has already been triggered .
