docs: private void releaseAssignedResource(@Nullable Throwable cause) {
  
  		assertRunningInJobMasterMainThread();
  
  		final LogicalSlot slot = assignedResource;
  
  		if (slot != null) {
  			ComponentMainThreadExecutor jobMasterMainThreadExecutor =
  				getVertex().getExecutionGraph().getJobMasterMainThreadExecutor();
  
  			slot.releaseSlot(cause)
  				.whenComplete((Object ignored, Throwable throwable) -> {
  					jobMasterMainThreadExecutor.assertRunningInMainThread();
  					if (throwable != null) {
  						releaseFuture.completeExceptionally(throwable);
  					} else {
  						releaseFuture.complete(null);
  					}
  				});
  		} else {
  			// no assigned resource --> we can directly complete the release future
  			releaseFuture.complete(null);
  		}
  	}