Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /* ************************************************************************
 #
 #  DivConq
 #
 #  http://divconq.com/
 #
 #  Copyright:
 #    Copyright 2014 eTimeline, LLC. All rights reserved.
 #
#  License:
#    See the license.txt file in the project's top-level directory for details.
#  Authors:
#    * Andy White
************************************************************************ */
package divconq.lang;
public class CountDownCallback {
	protected AtomicInteger count = null;
	protected OperationCallback callback = null;
	protected ReentrantLock cdlock = new ReentrantLock();		// TODO try StampedLock
	public CountDownCallback(int countOperationCallback callback) {
		this. = new AtomicInteger(count);
		this. = callback;
	}
	public int countDown() {
		this..lock();
		try {
			int res = this..decrementAndGet();
			if (res < 0)
				res = 0;
			if (res == 0)
			return res;
		}
		finally {
			this..unlock();
		}
	}
	public int countDown(OperationResult res) {
		this..lock();
		try {
			// we should use the SubContext approach to capture messages
			//this.callback.copyMessages(res);
			return this.countDown();
		}
		finally {
			this..unlock();
		}
	}
	public int increment() {
		return this..incrementAndGet();
	}
	/* TODO remove if possible
	public void setContext(OperationContext taskContext) {
		this.callback.setContext(taskContext);
	}
	*/
	public int value() {
		return this..intValue();
	}
New to GrepCode? Check out our FAQ X