am 9e2d1ed8: am b96bc804: am 0633ae74: Merge "Actually wait for installd" into mnc-dev
* commit '9e2d1ed898b8e4a4971ddb511e221e3406bf797a':
Actually wait for installd
diff --git a/core/java/com/android/internal/os/InstallerConnection.java b/core/java/com/android/internal/os/InstallerConnection.java
index 671bf24..dcc6a5e 100644
--- a/core/java/com/android/internal/os/InstallerConnection.java
+++ b/core/java/com/android/internal/os/InstallerConnection.java
@@ -18,6 +18,7 @@
import android.net.LocalSocket;
import android.net.LocalSocketAddress;
+import android.os.SystemClock;
import android.util.Slog;
import libcore.io.IoUtils;
import libcore.io.Streams;
@@ -206,4 +207,14 @@
}
return true;
}
+
+ public void waitForConnection() {
+ for (;;) {
+ if (execute("ping") >= 0) {
+ return;
+ }
+ Slog.w(TAG, "installd not ready");
+ SystemClock.sleep(1000);
+ }
+ }
}
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index bba3737..9ca937c 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -468,6 +468,7 @@
private static void performSystemServerDexOpt(String classPath) {
final String[] classPathElements = classPath.split(":");
final InstallerConnection installer = new InstallerConnection();
+ installer.waitForConnection();
final String instructionSet = VMRuntime.getRuntime().vmInstructionSet();
try {
diff --git a/services/core/java/com/android/server/pm/Installer.java b/services/core/java/com/android/server/pm/Installer.java
index ef7be30..8dc4bd3 100644
--- a/services/core/java/com/android/server/pm/Installer.java
+++ b/services/core/java/com/android/server/pm/Installer.java
@@ -41,7 +41,7 @@
@Override
public void onStart() {
Slog.i(TAG, "Waiting for installd to be ready.");
- ping();
+ mInstaller.waitForConnection();
}
private static String escapeNull(String arg) {
@@ -310,14 +310,6 @@
return mInstaller.execute(builder.toString());
}
- public boolean ping() {
- if (mInstaller.execute("ping") < 0) {
- return false;
- } else {
- return true;
- }
- }
-
@Deprecated
public int freeCache(long freeStorageSize) {
return freeCache(null, freeStorageSize);