1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Map; 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class Main { 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static public void main(String[] args) throws Exception { 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project checkManager(); 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 1; i <= 2; i++) { 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.out.println("\nspawning child #" + i); 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project child(); 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Thread.sleep(2000); 10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project checkManager(); 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.out.println("\ndone!"); 13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static private void child() throws Exception { 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.out.println("spawning child"); 170c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen ProcessBuilder pb = new ProcessBuilder("sleep", "5"); 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Process proc = pb.start(); 192ca00c90f8014e9c89ba20a24d90dd5a24452e08Elliott Hughes Thread.sleep(1000); 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project checkManager(); 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project proc.waitFor(); 22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.out.println("child died"); 23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static private void checkManager() { 26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Map<Thread, StackTraceElement[]> traces = Thread.getAllStackTraces(); 27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean found = false; 28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (Map.Entry<Thread, StackTraceElement[]> entry : 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project traces.entrySet()) { 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Thread t = entry.getKey(); 32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String name = t.getName(); 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (name.equals("java.lang.ProcessManager")) { 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.out.println("process manager: " + t.getState()); 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project found = true; 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (! found) { 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.out.println("process manager: nonexistent"); 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project} 44