bool StreamHalHidl::requestHalThreadPriority(pid_t threadPid, pid_t threadId) { if (mHalThreadPriority == HAL_THREAD_PRIORITY_DEFAULT) { return true; } int err = requestPriority( threadPid, threadId, mHalThreadPriority, false /*isForApp*/, true /*asynchronous*/); ALOGE_IF(err, "failed to set priority %d for pid %d tid %d; error %d", mHalThreadPriority, threadPid, threadId, err); // Audio will still work, but latency will be higher and sometimes unacceptable. return err == 0; }
status_t GonkSchedulePolicyService::onTransact(uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) { switch (code) { case REQUEST_PRIORITY_TRANSACTION: { CHECK_INTERFACE(ISchedulePolicyService, data, reply); int32_t pid = data.readInt32(); int32_t tid = data.readInt32(); int32_t prio = data.readInt32(); requestPriority(pid, tid, prio); return NO_ERROR; break; } default: return BBinder::onTransact(code, data, reply, flags); } }
int GonkSchedulePolicyService::requestPriority(int32_t pid, int32_t tid, int32_t prio, bool async) { return requestPriority(pid, tid, prio); }