INNER CODE UNIT · Java

cancelIfKilled

jolie/jolie · jolie/src/main/java/jolie/ExecutionThread.java:307

	public synchronized void cancelIfKilled( Future< ? > f ) {
		cleanFuturesToKill();
		if( isKilled() ) {
			f.cancel( true );
		}
		futureToCancel.add( new WeakReference<>( f ) );
	}

	private void cleanFuturesToKill() {
		boolean keepAlive = true;
		while( !futureToCancel.isEmpty() && keepAlive ) {
			final WeakReference< Future< ? > > ref = futureToCancel.peek();
			if( ref.get() == null ) {
				futureToCancel.removeFirst();
			} else {
				keepAlive = false;
			}
		}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…