MarkerTimeoutAction(final ClusterProcessor processor) {

    super(processor.getProcessorState().calculateMarkerTimeout());

    this.markerCounterAtCreate = processor.getProcessorState().getMarkerCounter();
    this.processor = processor;
  }
  public final void run() {

    final MarkerTimeoutMessage markerTimeoutMessage = new MarkerTimeoutMessage();
    markerTimeoutMessage.setMarkerCounterAtTimeoutCreate(markerCounterAtCreate);
    markerTimeoutMessage.setTimeoutMillis(getTimeoutMillis());
    markerTimeoutMessage.setReceiver(processor.getAddress());
    processor.post(markerTimeoutMessage);
    processor = null;
  }
  public String toString() {

    return "MarkerTimeoutAction{"
        + "markerCounterAtCreate="
        + markerCounterAtCreate
        + ", context="
        + ((processor == null) ? "null" : processor.getAddress().toString())
        + '}';
  }