diff options
author | Jean-Baptiste Queru <jbq@google.com> | 2009-09-24 07:59:02 -0700 |
---|---|---|
committer | Jean-Baptiste Queru <jbq@google.com> | 2009-09-24 09:22:49 -0700 |
commit | 4a977a52c3eb3ac08b94b81aef72fb618be39f81 (patch) | |
tree | 5e1a9e32c16f0f71af6ec24cf04e843be1ea1755 /src/com/android/providers/downloads | |
parent | 2061c03400a8e23cfeee5394b7e71db2440a48ed (diff) | |
download | android_packages_providers_DownloadProvider-4a977a52c3eb3ac08b94b81aef72fb618be39f81.tar.gz android_packages_providers_DownloadProvider-4a977a52c3eb3ac08b94b81aef72fb618be39f81.tar.bz2 android_packages_providers_DownloadProvider-4a977a52c3eb3ac08b94b81aef72fb618be39f81.zip |
Re-use the same random value to compute a download's restart time.
The restart time is used multiple times during the same pass,
and it needs to be consistent across calls. Otherwise, it's
possible for a download to not be restarted immediately and
to not be scheduled for a future restart.
BUG=2055624
Diffstat (limited to 'src/com/android/providers/downloads')
-rw-r--r-- | src/com/android/providers/downloads/DownloadInfo.java | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/com/android/providers/downloads/DownloadInfo.java b/src/com/android/providers/downloads/DownloadInfo.java index 336a2a0d..88cdede2 100644 --- a/src/com/android/providers/downloads/DownloadInfo.java +++ b/src/com/android/providers/downloads/DownloadInfo.java @@ -50,6 +50,8 @@ public class DownloadInfo { public String mETag; public boolean mMediaScanned; + public int mFuzz; + public volatile boolean mHasActiveThread; public DownloadInfo(int id, String uri, boolean noIntegrity, @@ -83,6 +85,7 @@ public class DownloadInfo { mCurrentBytes = currentBytes; mETag = eTag; mMediaScanned = mediaScanned; + mFuzz = Helpers.sRandom.nextInt(1001); } public void sendIntentIfRequested(Uri contentUri, Context context) { @@ -110,7 +113,7 @@ public class DownloadInfo { } return mLastMod + Constants.RETRY_FIRST_DELAY * - (1000 + Helpers.sRandom.nextInt(1001)) * (1 << (mNumFailed - 1)); + (1000 + mFuzz) * (1 << (mNumFailed - 1)); } /** |