/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ // This is a cut down version of Chromium source file base/threading/platform_thread_linux.h // with only the functions required. It also has a dummy implementation of // SetCurrentThreadPriorityForPlatform, which should not be called. #include "base/threading/platform_thread.h" #include "base/threading/platform_thread_internal_posix.h" #include "mozilla/Assertions.h" namespace base { namespace internal { namespace { const struct sched_param kRealTimePrio = {8}; } // namespace const ThreadPriorityToNiceValuePair kThreadPriorityToNiceValueMap[4] = { {ThreadPriority::BACKGROUND, 10}, {ThreadPriority::NORMAL, 0}, {ThreadPriority::DISPLAY, -8}, {ThreadPriority::REALTIME_AUDIO, -10}, }; Optional CanIncreaseCurrentThreadPriorityForPlatform( ThreadPriority priority) { MOZ_CRASH(); } bool SetCurrentThreadPriorityForPlatform(ThreadPriority priority) { MOZ_CRASH(); } Optional GetCurrentThreadPriorityForPlatform() { 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) { return base::make_optional(ThreadPriority::REALTIME_AUDIO); } return base::nullopt; } } // namespace internal void InitThreading() {} void TerminateOnThread() {} size_t GetDefaultThreadStackSize(const pthread_attr_t& attributes) { #if !defined(THREAD_SANITIZER) return 0; #else // ThreadSanitizer bloats the stack heavily. Evidence has been that the // default stack size isn't enough for some browser tests. return 2 * (1 << 23); // 2 times 8192K (the default stack size on Linux). #endif } } // namespace base