| Index: base/threading/platform_thread_freebsd.cc
|
| diff --git a/base/threading/platform_thread_freebsd.cc b/base/threading/platform_thread_freebsd.cc
|
| index a163f650443d08f1602ff295e8c985dab7c7ddd2..dc5d34b2c51168f3c0d639920074e61689e79a33 100644
|
| --- a/base/threading/platform_thread_freebsd.cc
|
| +++ b/base/threading/platform_thread_freebsd.cc
|
| @@ -36,9 +36,11 @@ const ThreadPriorityToNiceValuePair kThreadPriorityToNiceValueMap[4] = {
|
| { kThreadPriority_Display, -6 },
|
| }
|
|
|
| -bool HandleSetThreadPriorityForPlatform(PlatformThreadHandle handle,
|
| - ThreadPriority priority) {
|
| +bool SetThreadPriorityForPlatform(PlatformThreadHandle handle,
|
| + ThreadPriority priority) {
|
| #if !defined(OS_NACL)
|
| + // TODO(gab): Assess the correctness of using |pthread_self()| below instead
|
| + // of |handle|. http://crbug.com/468793.
|
| return priority == kThreadPriority_RealtimeAudio &&
|
| pthread_setschedparam(pthread_self(), SCHED_RR, &kRealTimePrio) == 0;
|
| #else
|
| @@ -46,6 +48,24 @@ bool HandleSetThreadPriorityForPlatform(PlatformThreadHandle handle,
|
| #endif
|
| }
|
|
|
| +bool GetThreadPriorityForPlatform(PlatformThreadHandle handle,
|
| + ThreadPriority* priority) {
|
| +#if !defined(OS_NACL)
|
| + // TODO(gab): Assess the correctness of using |pthread_self()| below instead
|
| + // of |handle|. http://crbug.com/468793.
|
| + int maybe_sched_rr = 0;
|
| + struct sched_param maybe_realtime_prio = {0};
|
| + if (pthread_getschedparam(pthread_self(), &maybe_sched_rr,
|
| + &maybe_realtime_prio) == 0 &&
|
| + maybe_sched_rr == SCHED_RR &&
|
| + maybe_realtime_prio.sched_priority == kRealTimePrio.sched_priority) {
|
| + *priority = kThreadPriority_RealtimeAudio;
|
| + return true;
|
| + }
|
| +#endif
|
| + return false;
|
| +}
|
| +
|
| } // namespace internal
|
|
|
| // static
|
|
|