class OperatorCoordinatorHolder implements OperatorCoordinator, OperatorCoordinatorCheckpointContext {

	@Override
	public void abortCurrentTriggering() {
		// this method is commonly called by the CheckpointCoordinator's executor thread (timer thread).

		// we ideally want the scheduler main-thread to be the one that sends the blocked events
		// however, we need to react synchronously here, to maintain consistency and not allow
		// another checkpoint injection in-between (unlikely, but possible).
		// fortunately, the event-sending goes pretty much directly to the RPC gateways, which are
		// thread safe.

		// this will automatically be fixed once the checkpoint coordinator runs in the
		// scheduler's main thread executor
		eventValve.openValveAndUnmarkCheckpoint();
	}

	private  OperatorCoordinatorHolder(
			final OperatorID operatorId,
			final OperatorCoordinator coordinator,
			final LazyInitializedCoordinatorContext context,
			final OperatorEventValve eventValve,
			final int operatorParallelism,
			final int operatorMaxParallelism);

}