| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef BASE_THREADING_PLATFORM_THREAD_INTERNAL_POSIX_H_ |
| #define BASE_THREADING_PLATFORM_THREAD_INTERNAL_POSIX_H_ |
| |
| #include "base/base_export.h" |
| #include "base/threading/platform_thread.h" |
| |
| namespace base { |
| |
| namespace internal { |
| |
| struct ThreadPriorityToNiceValuePair { |
| ThreadPriority priority; |
| int nice_value; |
| }; |
| // The elements must be listed in the order of increasing priority (lowest |
| // priority first), that is, in the order of decreasing nice values (highest |
| // nice value first). |
| BASE_EXPORT extern |
| const ThreadPriorityToNiceValuePair kThreadPriorityToNiceValueMap[4]; |
| |
| // Returns the nice value matching |priority| based on the platform-specific |
| // implementation of kThreadPriorityToNiceValueMap. |
| int ThreadPriorityToNiceValue(ThreadPriority priority); |
| |
| // Returns the ThreadPrioirty matching |nice_value| based on the platform- |
| // specific implementation of kThreadPriorityToNiceValueMap. |
| BASE_EXPORT ThreadPriority NiceValueToThreadPriority(int nice_value); |
| |
| // Allows platform specific tweaks to the generic POSIX solution for |
| // SetCurrentThreadPriority. Returns true if the platform-specific |
| // implementation handled this |priority| change, false if the generic |
| // implementation should instead proceed. |
| bool SetCurrentThreadPriorityForPlatform(ThreadPriority priority); |
| |
| // Returns true if there is a platform-specific ThreadPriority set on the |
| // current thread (and returns the actual ThreadPriority via |priority|). |
| // Returns false otherwise, leaving |priority| untouched. |
| bool GetCurrentThreadPriorityForPlatform(ThreadPriority* priority); |
| |
| } // namespace internal |
| |
| } // namespace base |
| |
| #endif // BASE_THREADING_PLATFORM_THREAD_INTERNAL_POSIX_H_ |