aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponseImpl.java20
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/cache/ResponseCacheMiddleware.java18
2 files changed, 24 insertions, 14 deletions
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponseImpl.java b/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponseImpl.java
index c161f30..c6f02a1 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponseImpl.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponseImpl.java
@@ -74,10 +74,7 @@ abstract class AsyncHttpResponseImpl extends FilteredDataEmitter implements Asyn
return this;
}
- @Override
- protected void report(Exception e) {
- super.report(e);
-
+ private void terminate() {
// DISCONNECT. EVERYTHING.
// should not get any data after this point...
// if so, eat it and disconnect.
@@ -88,12 +85,25 @@ abstract class AsyncHttpResponseImpl extends FilteredDataEmitter implements Asyn
mSocket.close();
}
});
+ }
+
+ @Override
+ protected void report(Exception e) {
+ super.report(e);
+
+ terminate();
mSocket.setWriteableCallback(null);
mSocket.setClosedCallback(null);
mSocket.setEndCallback(null);
mCompleted = true;
}
-
+
+ @Override
+ public void close() {
+ super.close();
+ terminate();
+ }
+
private AsyncHttpRequest mRequest;
private AsyncSocket mSocket;
protected Headers mHeaders;
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/cache/ResponseCacheMiddleware.java b/AndroidAsync/src/com/koushikdutta/async/http/cache/ResponseCacheMiddleware.java
index 614ba40..71abcf0 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/cache/ResponseCacheMiddleware.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/cache/ResponseCacheMiddleware.java
@@ -169,7 +169,7 @@ public class ResponseCacheMiddleware extends SimpleMiddleware {
@Override
public void run() {
data.connectCallback.onConnectCompleted(null, socket);
- socket.spewInternal();
+ socket.sendCachedDataOnNetworkThread();
}
});
cacheHitCount++;
@@ -243,7 +243,7 @@ public class ResponseCacheMiddleware extends SimpleMiddleware {
CachedBodyEmitter bodySpewer = new CachedBodyEmitter(cacheData.candidate, cacheData.contentLength);
bodySpewer.setDataEmitter(data.bodyEmitter);
data.bodyEmitter = bodySpewer;
- bodySpewer.spew();
+ bodySpewer.sendCachedData();
return;
}
@@ -416,14 +416,14 @@ public class ResponseCacheMiddleware extends SimpleMiddleware {
allocator.setCurrentAlloc((int)contentLength);
}
- Runnable spewRunnable = new Runnable() {
+ Runnable sendCachedDataRunnable = new Runnable() {
@Override
public void run() {
- spewInternal();
+ sendCachedDataOnNetworkThread();
}
};
- void spewInternal() {
+ void sendCachedDataOnNetworkThread() {
if (pending.remaining() > 0) {
super.onDataAvailable(CachedBodyEmitter.this, pending);
if (pending.remaining() > 0)
@@ -456,17 +456,17 @@ public class ResponseCacheMiddleware extends SimpleMiddleware {
return;
// this limits max throughput to 256k (aka max alloc) * 100 per second...
// roughly 25MB/s
- getServer().postDelayed(spewRunnable, 10);
+ getServer().postDelayed(sendCachedDataRunnable, 10);
}
- void spew() {
- getServer().post(spewRunnable);
+ void sendCachedData() {
+ getServer().post(sendCachedDataRunnable);
}
@Override
public void resume() {
paused = false;
- spew();
+ sendCachedData();
}
@Override