Make pthread_create report sched_setscheduler failures on LP64.

We couldn't fix this for 32-bit because there's too much broken
code out there. (Pretty much everyone asks for real-time
scheduling for all their threads, and the kernel says "don't be
stupid".)

Change-Id: I43c5271e6b6bb91278b9a19eec08cbf05391e3c4
This commit is contained in:
Elliott Hughes
2013-10-15 16:51:17 -07:00
parent dc9d8d050a
commit 98624c3746

View File

@@ -91,8 +91,10 @@ int _init_thread(pthread_internal_t* thread, bool add_to_thread_list) {
struct sched_param param;
param.sched_priority = thread->attr.sched_priority;
if (sched_setscheduler(thread->tid, thread->attr.sched_policy, &param) == -1) {
// For backwards compatibility reasons, we just warn about failures here.
// error = errno;
#if __LP64__
// For backwards compatibility reasons, we only report failures on 64-bit devices.
error = errno;
#endif
__libc_format_log(ANDROID_LOG_WARN, "libc",
"pthread_create sched_setscheduler call failed: %s", strerror(errno));
}