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

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

Issue 1777333002: [Cronet] Fix race in UploadDataStream.attachToRequest. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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/CronetUploadDataStream.java
diff --git a/components/cronet/android/java/src/org/chromium/net/CronetUploadDataStream.java b/components/cronet/android/java/src/org/chromium/net/CronetUploadDataStream.java
index 6256d46a80979812729329f57619aebd276b9de8..6760f7078256272127b1fb0c5ae908ef17ae31dc 100644
--- a/components/cronet/android/java/src/org/chromium/net/CronetUploadDataStream.java
+++ b/components/cronet/android/java/src/org/chromium/net/CronetUploadDataStream.java
@@ -232,7 +232,7 @@ final class CronetUploadDataStream implements UploadDataSink {
/**
* Posts task to application Executor.
*/
- private void postTaskToExecutor(Runnable task) {
+ void postTaskToExecutor(Runnable task) {
try {
mExecutor.execute(task);
} catch (Throwable e) {
@@ -299,28 +299,20 @@ final class CronetUploadDataStream implements UploadDataSink {
* an interface with just this method, to minimize CronetURLRequest's
* dependencies on each upload stream type.
*/
- void attachToRequest(final CronetUrlRequest request, final long requestAdapter,
- final Runnable afterAttachCallback) {
+ void attachToRequest(final CronetUrlRequest request, final long requestAdapter) {
xunjieli 2016/03/10 17:29:53 Could you make a comment here to say that this met
mRequest = request;
- postTaskToExecutor(new Runnable() {
- @Override
- public void run() {
- synchronized (mLock) {
- mInWhichUserCallback = UserCallback.GET_LENGTH;
- }
- try {
- mLength = mDataProvider.getLength();
- } catch (Throwable t) {
- onError(t);
- }
- synchronized (mLock) {
- mInWhichUserCallback = UserCallback.NOT_IN_CALLBACK;
- mUploadDataStreamAdapter =
- nativeAttachUploadDataToRequest(requestAdapter, mLength);
- }
- afterAttachCallback.run();
- }
- });
+ synchronized (mLock) {
+ mInWhichUserCallback = UserCallback.GET_LENGTH;
+ }
+ try {
+ mLength = mDataProvider.getLength();
+ } catch (Throwable t) {
+ onError(t);
+ }
+ synchronized (mLock) {
+ mInWhichUserCallback = UserCallback.NOT_IN_CALLBACK;
+ mUploadDataStreamAdapter = nativeAttachUploadDataToRequest(requestAdapter, mLength);
+ }
}
/**

Powered by Google App Engine
This is Rietveld 408576698