am e5830324: Make pthread_create more forgiving of invalid sched_policy. Bug: 7005326

* commit 'e58303249b9e799a4fe84c5a2dfe71518441a6ec':
  Make pthread_create more forgiving of invalid sched_policy. Bug: 7005326
This commit is contained in:
Dave Burke
2012-09-18 00:05:21 -07:00
committed by Android Git Automerger

View File

@@ -205,6 +205,8 @@ void __thread_entry(int (*func)(void*), void *arg, void **tls)
pthread_exit((void*) result); pthread_exit((void*) result);
} }
#include <private/logd.h>
__LIBC_ABI_PRIVATE__ __LIBC_ABI_PRIVATE__
int _init_thread(pthread_internal_t* thread, pid_t kernel_id, pthread_attr_t* attr, int _init_thread(pthread_internal_t* thread, pid_t kernel_id, pthread_attr_t* attr,
void* stack_base, bool add_to_thread_list) void* stack_base, bool add_to_thread_list)
@@ -229,7 +231,9 @@ int _init_thread(pthread_internal_t* thread, pid_t kernel_id, pthread_attr_t* at
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(kernel_id, thread->attr.sched_policy, &param) == -1) { if (sched_setscheduler(kernel_id, thread->attr.sched_policy, &param) == -1) {
error = errno; // For back compat reasons, we just warn about possible invalid sched_policy
const char* msg = "pthread_create sched_setscheduler call failed: %s\n";
__libc_android_log_print(ANDROID_LOG_WARN, "libc", msg, strerror(errno));
} }
} }