Get rid of due-mode in AsyncCallFuture, it is too confusing and we don't have a use case of it

This commit is contained in:
Kelven Yang 2013-01-03 17:43:32 -08:00
parent 107fccdf69
commit 3435ee0604
2 changed files with 5 additions and 20 deletions

View File

@ -22,16 +22,13 @@ import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
public class AsyncCallFuture<T> implements Future<T>, AsyncCompletionCallback<T> {
AsyncCompletionCallback <T> _callback;
public class AsyncCallFuture<T> implements Future<T> {
Object _completed = new Object();
boolean _done = false;
T _resultObject; // we will store a copy of the result object
public AsyncCallFuture(AsyncCompletionCallback <T> callback) {
_callback = callback;
public AsyncCallFuture() {
}
@Override
@ -75,23 +72,12 @@ public class AsyncCallFuture<T> implements Future<T>, AsyncCompletionCallback<T>
return _done;
}
@Override
public void complete(T resultObject) {
_resultObject = resultObject;
synchronized(_completed) {
_done = true;
_completed.notifyAll();
}
_callback.complete(resultObject);
}
public void inplaceComplete(T resultObject) {
_resultObject = resultObject;
synchronized(_completed) {
_done = true;
_completed.notifyAll();
}
}
}

View File

@ -19,17 +19,16 @@
package org.apache.cloudstack.framework.codestyle;
import org.apache.cloudstack.framework.async.AsyncCallFuture;
import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
public class AsyncSampleCallee {
AsyncSampleCallee _driver;
public AsyncCallFuture<String> createVolume(Object realParam, AsyncCompletionCallback<String> callback) {
public AsyncCallFuture<String> createVolume(Object realParam) {
String result = "result object";
AsyncCallFuture<String> call = new AsyncCallFuture<String>(callback);
AsyncCallFuture<String> call = new AsyncCallFuture<String>();
call.inplaceComplete(result);
call.complete(result);
return call;
}
}