Chromium Code Reviews| Index: base/threading/platform_thread_win.cc |
| diff --git a/base/threading/platform_thread_win.cc b/base/threading/platform_thread_win.cc |
| index 3df371943f5e6fdf1a91175802b7fb36f78d9aba..5cd959d854cccb3462d4bbac2138a30ce00be0b7 100644 |
| --- a/base/threading/platform_thread_win.cc |
| +++ b/base/threading/platform_thread_win.cc |
| @@ -126,18 +126,17 @@ bool CreateThreadInternal(size_t stack_size, |
| // static |
| PlatformThreadId PlatformThread::CurrentId() { |
| - return GetCurrentThreadId(); |
| + return ::GetCurrentThreadId(); |
| } |
| // static |
| PlatformThreadRef PlatformThread::CurrentRef() { |
| - return PlatformThreadRef(GetCurrentThreadId()); |
| + return PlatformThreadRef(::GetCurrentThreadId()); |
| } |
| // static |
| PlatformThreadHandle PlatformThread::CurrentHandle() { |
| - NOTIMPLEMENTED(); // See OpenThread() |
| - return PlatformThreadHandle(); |
| + return PlatformThreadHandle(::GetCurrentThread()); |
| } |
| // static |
| @@ -234,17 +233,52 @@ void PlatformThread::Join(PlatformThreadHandle thread_handle) { |
| // static |
| void PlatformThread::SetThreadPriority(PlatformThreadHandle handle, |
| ThreadPriority priority) { |
| - switch (priority) { |
| + DCHECK(!handle.is_null()); |
| + |
| + int desired_priority = THREAD_PRIORITY_ERROR_RETURN; |
| + switch (desired_priority) { |
| case kThreadPriority_Normal: |
| - ::SetThreadPriority(handle.handle_, THREAD_PRIORITY_NORMAL); |
| + desired_priority = THREAD_PRIORITY_NORMAL; |
| break; |
| case kThreadPriority_RealtimeAudio: |
| - ::SetThreadPriority(handle.handle_, THREAD_PRIORITY_TIME_CRITICAL); |
| + desired_priority = THREAD_PRIORITY_TIME_CRITICAL; |
| + break; |
| + case kThreadPriority_Display: |
| + desired_priority = THREAD_PRIORITY_ABOVE_NORMAL; |
| + break; |
| + case kThreadPriority_Background: |
| + desired_priority = THREAD_PRIORITY_LOWEST; |
| break; |
| default: |
| NOTREACHED() << "Unknown priority."; |
| break; |
| } |
| + DCHECK_NE(desired_priority, THREAD_PRIORITY_ERROR_RETURN); |
|
rvargas (doing something else)
2015/03/30 22:31:23
Isn't this the same as line 253?
gab
2015/03/31 14:02:33
If all case statements set |desired_priority|, yes
|
| + |
| + BOOL success = ::SetThreadPriority(handle.handle_, desired_priority); |
| + DPCHECK(success); |
| +} |
| + |
| +// static |
| +ThreadPriority PlatformThread::GetThreadPriority(PlatformThreadHandle handle) { |
| + DCHECK(!handle.is_null()); |
| + |
| + int priority = ::GetThreadPriority(handle.handle_); |
| + switch (priority) { |
| + case THREAD_PRIORITY_NORMAL: |
| + return kThreadPriority_Normal; |
| + case THREAD_PRIORITY_TIME_CRITICAL: |
| + return kThreadPriority_RealtimeAudio; |
| + case THREAD_PRIORITY_ABOVE_NORMAL: |
| + return kThreadPriority_Display; |
| + case THREAD_PRIORITY_LOWEST: |
| + return kThreadPriority_Background; |
| + case THREAD_PRIORITY_ERROR_RETURN: |
| + DPCHECK(false) << "GetThreadPriority error"; // Falls through. |
| + default: |
| + NOTREACHED() << "Unexpected priority: " << priority; |
| + return kThreadPriority_Normal; |
| + } |
| } |
| } // namespace base |