diff options
-rw-r--r-- | AndroidAsync/src/com/koushikdutta/async/http/AsyncHttpResponseImpl.java | 20 | ||||
-rw-r--r-- | AndroidAsync/src/com/koushikdutta/async/http/cache/ResponseCacheMiddleware.java | 18 |
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 |