private void awaitControlOp(){
  if (controlWaiters.size() > 0 || controlOperationExecuting.get()) {
    evalWaiters.add(Thread.currentThread());
    LockSupport.park(this);
  }
}

private void awaitControlOp ( ) { if ( controlWaiters . size ( ) > 0 || controlOperationExecuting . get ( ) ) { evalWaiters . add ( Thread . currentThread ( ) ) ; LockSupport . park ( this ) ; } }
if a control operation is executing or there are some in the queue to be executed , then block the current thread until that process completes .
