diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/os/Process.java | 10 | ||||
-rw-r--r-- | core/jni/android_util_Process.cpp | 12 |
2 files changed, 20 insertions, 2 deletions
diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java index 05099fb..facab4c 100644 --- a/core/java/android/os/Process.java +++ b/core/java/android/os/Process.java @@ -806,7 +806,15 @@ public class Process { */ public static final native void setProcessGroup(int pid, int group) throws IllegalArgumentException, SecurityException; - + + /** + * Return the scheduling group of requested process. + * + * @hide + */ + public static final native int getProcessGroup(int pid) + throws IllegalArgumentException, SecurityException; + /** * Set the priority of the calling thread, based on Linux priorities. See * {@link #setThreadPriority(int, int)} for more information. diff --git a/core/jni/android_util_Process.cpp b/core/jni/android_util_Process.cpp index 0290857..5d32328 100644 --- a/core/jni/android_util_Process.cpp +++ b/core/jni/android_util_Process.cpp @@ -268,6 +268,15 @@ void android_os_Process_setProcessGroup(JNIEnv* env, jobject clazz, int pid, jin closedir(d); } +jint android_os_Process_getProcessGroup(JNIEnv* env, jobject clazz, jint pid) +{ + SchedPolicy sp; + if (get_sched_policy(pid, &sp) != 0) { + signalExceptionForGroupError(env, errno); + } + return (int) sp; +} + static void android_os_Process_setCanSelfBackground(JNIEnv* env, jobject clazz, jboolean bgOk) { // Establishes the calling thread as illegal to put into the background. // Typically used only for the system process's main looper. @@ -991,7 +1000,8 @@ static const JNINativeMethod methods[] = { {"setThreadPriority", "(I)V", (void*)android_os_Process_setCallingThreadPriority}, {"getThreadPriority", "(I)I", (void*)android_os_Process_getThreadPriority}, {"setThreadGroup", "(II)V", (void*)android_os_Process_setThreadGroup}, - {"setProcessGroup", "(II)V", (void*)android_os_Process_setProcessGroup}, + {"setProcessGroup", "(II)V", (void*)android_os_Process_setProcessGroup}, + {"getProcessGroup", "(I)I", (void*)android_os_Process_getProcessGroup}, {"setOomAdj", "(II)Z", (void*)android_os_Process_setOomAdj}, {"setArgV0", "(Ljava/lang/String;)V", (void*)android_os_Process_setArgV0}, {"setUid", "(I)I", (void*)android_os_Process_setUid}, |