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

Unified Diff: components/cronet/android/java/src/org/chromium/net/CronetUrlRequest.java

Issue 1777333002: [Cronet] Fix race in UploadDataStream.attachToRequest. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address Helen's comments. Created 4 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
Index: components/cronet/android/java/src/org/chromium/net/CronetUrlRequest.java
diff --git a/components/cronet/android/java/src/org/chromium/net/CronetUrlRequest.java b/components/cronet/android/java/src/org/chromium/net/CronetUrlRequest.java
index e03e97dde1463e8ce594a9b54d2bc6355fd0c5de..c86d2e41251e884d832709e2b96239dac700ab89 100644
--- a/components/cronet/android/java/src/org/chromium/net/CronetUrlRequest.java
+++ b/components/cronet/android/java/src/org/chromium/net/CronetUrlRequest.java
@@ -211,7 +211,7 @@ final class CronetUrlRequest implements UrlRequest {
"Requests with upload data must have a Content-Type.");
}
mStarted = true;
- mUploadDataStream.attachToRequest(this, mUrlRequestAdapter, new Runnable() {
+ mUploadDataStream.postTaskToExecutor(new Runnable() {
@Override
public void run() {
synchronized (mUrlRequestAdapterLock) {
@@ -234,6 +234,12 @@ final class CronetUrlRequest implements UrlRequest {
@GuardedBy("mUrlRequestAdapterLock")
private void startInternalLocked() {
+ if (isDoneLocked()) {
xunjieli 2016/03/10 18:14:19 use isDone() instead? since startInternalLocked sh
mef 2016/03/10 19:00:54 Right, isDoneLocked() expects that lock is already
+ return;
+ }
+ if (mUploadDataStream != null) {
+ mUploadDataStream.attachToRequest(this, mUrlRequestAdapter);
+ }
if (mDisableCache) {
nativeDisableCache(mUrlRequestAdapter);
}

Powered by Google App Engine
This is Rietveld 408576698