Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(56)

Unified Diff: sky/services/oknet/src/org/domokit/oknet/UrlLoaderImpl.java

Issue 1010433009: Use a thread pool for the CopyToPipe jobs in oknet (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sky/services/oknet/src/org/domokit/oknet/NetworkServiceImpl.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/services/oknet/src/org/domokit/oknet/UrlLoaderImpl.java
diff --git a/sky/services/oknet/src/org/domokit/oknet/UrlLoaderImpl.java b/sky/services/oknet/src/org/domokit/oknet/UrlLoaderImpl.java
index d5c94561ee4501f3abbe684bb689ab468eae0291..48d791588e25338330a9a63fcdc901382dc19054 100644
--- a/sky/services/oknet/src/org/domokit/oknet/UrlLoaderImpl.java
+++ b/sky/services/oknet/src/org/domokit/oknet/UrlLoaderImpl.java
@@ -30,6 +30,7 @@ import org.chromium.mojom.mojo.UrlResponse;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
+import java.util.concurrent.Executor;
import okio.BufferedSource;
@@ -40,18 +41,22 @@ import okio.BufferedSource;
public class UrlLoaderImpl implements UrlLoader {
private static final String TAG = "UrlLoaderImpl";
private final Core mCore;
- private OkHttpClient mClient;
+ private final OkHttpClient mClient;
+ private final Executor mExecutor;
private boolean mIsLoading;
private NetworkError mError;
+
private static long sNextTracingId = 1;
private final long mTracingId;
class CopyToPipeJob implements Runnable {
+ private ResponseBody mBody;
private BufferedSource mSource;
private DataPipe.ProducerHandle mProducer;
- public CopyToPipeJob(BufferedSource source, DataPipe.ProducerHandle producerHandle) {
- mSource = source;
+ public CopyToPipeJob(ResponseBody body, DataPipe.ProducerHandle producerHandle) {
+ mBody = body;
+ mSource = body.source();
mProducer = producerHandle;
}
@@ -79,15 +84,21 @@ public class UrlLoaderImpl implements UrlLoader {
mIsLoading = false;
mProducer.close();
+ try {
+ mBody.close();
+ } catch (IOException e) {
+ Log.e(TAG, "mBody.close failed", e);
+ }
TraceEvent.finishAsync("UrlLoaderImpl", mTracingId);
TraceEvent.end("UrlLoaderImpl::CopyToPipeJob::copy");
}
}
- public UrlLoaderImpl(Core core, OkHttpClient client) {
+ public UrlLoaderImpl(Core core, OkHttpClient client, Executor executor) {
assert core != null;
mCore = core;
mClient = client;
+ mExecutor = executor;
mIsLoading = false;
mError = null;
mTracingId = sNextTracingId++;
@@ -171,8 +182,7 @@ public class UrlLoaderImpl implements UrlLoader {
DataPipe.ConsumerHandle consumerHandle = handles.second;
urlResponse.body = consumerHandle;
responseCallback.call(urlResponse);
- CopyToPipeJob job = new CopyToPipeJob(body.source(), producerHandle);
- (new Thread(job)).start();
+ mExecutor.execute(new CopyToPipeJob(body, producerHandle));
}
});
}
« no previous file with comments | « sky/services/oknet/src/org/domokit/oknet/NetworkServiceImpl.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698