code: public void requestVmCurrentStates(Action1<List<VirtualMachineCurrentState>> action) throws TaskQueueException {
          if (!vmCurrStateRequest.offer(action))
              throw new TaskQueueException("Too many pending actions submitted for getting VM current state");
      }
docs: Get the current states of all known VMs and call the given action when available. Although an ongoing scheduling
  iteration is unaffected by this call, onset of the next scheduling iteration may be delayed until the call to the
  given {@code action} returns. Therefore, it is expected that the {@code action} callback return quickly.
  @param action The action to call with VM states.
  @throws TaskQueueException if too many actions are pending to get VM states.