summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Tetsutoki Shiozawa <tetsutoki.x.shiozawa@sonymobile.com> 2016-06-08 13:45:47 +0900
committer Todd Kennedy <toddke@google.com> 2016-06-10 14:31:59 -0700
commit99bf020f707553601b4830aefe264d54d1f7fbfd (patch)
tree613f37336da1f595753cec9f7fc0d71789391b17
parent22dec763a3392c7f2ace69934d3f8dcb62ba49f0 (diff)
Solve the infinite loop on clearExternalStorageDataSync
5000 msec timeout is set for waiting DefaultContainerService, but it's not working. It's not possible to exit a wait loop even if it takes over 5000 msec. Bug: 29232999 Change-Id: I74a45637e0a3fa5a7b151e6b3dc0b3aaece96d53
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 27ca62af5955..a7bd4ab2f11d 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -16341,8 +16341,9 @@ public class PackageManagerService extends IPackageManager.Stub {
for (int curUser : users) {
long timeout = SystemClock.uptimeMillis() + 5000;
synchronized (conn) {
- long now = SystemClock.uptimeMillis();
- while (conn.mContainerService == null && now < timeout) {
+ long now;
+ while (conn.mContainerService == null &&
+ (now = SystemClock.uptimeMillis()) < timeout) {
try {
conn.wait(timeout - now);
} catch (InterruptedException e) {