mirror of https://github.com/apache/cloudstack.git
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:
parent
107fccdf69
commit
3435ee0604
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue