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