ZygoteInit: more dead code cleanup
ZYGOTE_FORK_MODE has been set to false since 2009, and the code indicates that runForkMode() was "retained for reference only." Remove this dead code. There will always be a reference to this code in git. Change-Id: Iddfdca8379fdc6521febea81e553de763b6f4fd0
This commit is contained in:
@@ -19,10 +19,8 @@ package com.android.internal.os;
|
|||||||
import static libcore.io.OsConstants.S_IRWXG;
|
import static libcore.io.OsConstants.S_IRWXG;
|
||||||
import static libcore.io.OsConstants.S_IRWXO;
|
import static libcore.io.OsConstants.S_IRWXO;
|
||||||
|
|
||||||
import android.content.pm.ActivityInfo;
|
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.content.res.TypedArray;
|
import android.content.res.TypedArray;
|
||||||
import android.graphics.drawable.Drawable;
|
|
||||||
import android.net.LocalServerSocket;
|
import android.net.LocalServerSocket;
|
||||||
import android.os.Debug;
|
import android.os.Debug;
|
||||||
import android.os.Process;
|
import android.os.Process;
|
||||||
@@ -87,12 +85,6 @@ public class ZygoteInit {
|
|||||||
*/
|
*/
|
||||||
static final int GC_LOOP_COUNT = 10;
|
static final int GC_LOOP_COUNT = 10;
|
||||||
|
|
||||||
/**
|
|
||||||
* If true, zygote forks for each peer. If false, a select loop is used
|
|
||||||
* inside a single process. The latter is preferred.
|
|
||||||
*/
|
|
||||||
private static final boolean ZYGOTE_FORK_MODE = false;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The name of a resource file that contains classes to preload.
|
* The name of a resource file that contains classes to preload.
|
||||||
*/
|
*/
|
||||||
@@ -549,11 +541,7 @@ public class ZygoteInit {
|
|||||||
|
|
||||||
Log.i(TAG, "Accepting command socket connections");
|
Log.i(TAG, "Accepting command socket connections");
|
||||||
|
|
||||||
if (ZYGOTE_FORK_MODE) {
|
runSelectLoop();
|
||||||
runForkMode();
|
|
||||||
} else {
|
|
||||||
runSelectLoopMode();
|
|
||||||
}
|
|
||||||
|
|
||||||
closeServerSocket();
|
closeServerSocket();
|
||||||
} catch (MethodAndArgsCaller caller) {
|
} catch (MethodAndArgsCaller caller) {
|
||||||
@@ -565,44 +553,6 @@ public class ZygoteInit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Runs the zygote in accept-and-fork mode. In this mode, each peer
|
|
||||||
* gets its own zygote spawner process. This code is retained for
|
|
||||||
* reference only.
|
|
||||||
*
|
|
||||||
* @throws MethodAndArgsCaller in a child process when a main() should
|
|
||||||
* be executed.
|
|
||||||
*/
|
|
||||||
private static void runForkMode() throws MethodAndArgsCaller {
|
|
||||||
while (true) {
|
|
||||||
ZygoteConnection peer = acceptCommandPeer();
|
|
||||||
|
|
||||||
int pid;
|
|
||||||
|
|
||||||
pid = Zygote.fork();
|
|
||||||
|
|
||||||
if (pid == 0) {
|
|
||||||
// The child process should handle the peer requests
|
|
||||||
|
|
||||||
// The child does not accept any more connections
|
|
||||||
try {
|
|
||||||
sServerSocket.close();
|
|
||||||
} catch (IOException ex) {
|
|
||||||
Log.e(TAG, "Zygote Child: error closing sockets", ex);
|
|
||||||
} finally {
|
|
||||||
sServerSocket = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
peer.run();
|
|
||||||
break;
|
|
||||||
} else if (pid > 0) {
|
|
||||||
peer.closeSocket();
|
|
||||||
} else {
|
|
||||||
throw new RuntimeException("Error invoking fork()");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs the zygote process's select loop. Accepts new connections as
|
* Runs the zygote process's select loop. Accepts new connections as
|
||||||
* they happen, and reads commands from connections one spawn-request's
|
* they happen, and reads commands from connections one spawn-request's
|
||||||
@@ -611,9 +561,9 @@ public class ZygoteInit {
|
|||||||
* @throws MethodAndArgsCaller in a child process when a main() should
|
* @throws MethodAndArgsCaller in a child process when a main() should
|
||||||
* be executed.
|
* be executed.
|
||||||
*/
|
*/
|
||||||
private static void runSelectLoopMode() throws MethodAndArgsCaller {
|
private static void runSelectLoop() throws MethodAndArgsCaller {
|
||||||
ArrayList<FileDescriptor> fds = new ArrayList();
|
ArrayList<FileDescriptor> fds = new ArrayList<FileDescriptor>();
|
||||||
ArrayList<ZygoteConnection> peers = new ArrayList();
|
ArrayList<ZygoteConnection> peers = new ArrayList<ZygoteConnection>();
|
||||||
FileDescriptor[] fdArray = new FileDescriptor[4];
|
FileDescriptor[] fdArray = new FileDescriptor[4];
|
||||||
|
|
||||||
fds.add(sServerSocket.getFileDescriptor());
|
fds.add(sServerSocket.getFileDescriptor());
|
||||||
|
|||||||
Reference in New Issue
Block a user