extern JavaVM* jvm; int set_thread_priority(int prio) { int err = 0; JNIEnv* env; jclass clz; jmethodID mid; jobject thread;
if (!jvm) return -1; err = (*jvm)->AttachCurrentThread(jvm, &env, 0); if (err < 0) { err = -1; goto done; } clz = (*env)->FindClass(env, "java/lang/Thread"); if (!clz) { err = -1; goto done; } mid = (*env)->GetStaticMethodID(env, clz, "currentThread", "()Ljava/lang/Thread;"); if (!mid) { err = -1; goto done; } thread = (*env)->CallStaticObjectMethod(env, clz, mid); if (!thread) { err = -1; goto done; } mid = (*env)->GetMethodID(env, clz, "setPriority", "(I)V"); if (!mid) { err = -1; goto done; } (*env)->CallVoidMethod(env, thread, mid, prio); mid = (*env)->GetMethodID(env, clz, "getPriority", "()I"); if (mid) { prio = (*env)->CallIntMethod(env, thread, mid); debug("new thread priority is %d\n", prio); } done: (*jvm)->DetachCurrentThread(jvm); return err; } On 11月11日, 午後9:53, Sambhav <isamb...@gmail.com> wrote: > Hi, > > For thread priorities to be respected in regular linux we use * > pthread_attr_setinheritsched* API > pthread_attr_setinheritsched (&tattr, PTHREAD_EXPLICIT_SCHED); > > But this is not supported in Android. I have a system which runs real time > in regular linux and after migrating to Android it does not run real time. > What is the reason for not supporting this feature and is there any way in > which this can be enabled ? > Is there any other way in which thread priority can be reflected in Android > ? > > Regards, > Sambhav -- unsubscribe: android-porting+unsubscr...@googlegroups.com website: http://groups.google.com/group/android-porting