| // Copyright 2023 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| // Description: Common functions for NACL and all Linux and |
| // Linux-derivatives. |
| |
| #include "base/threading/platform_thread.h" |
| |
| namespace base { |
| |
| size_t GetDefaultThreadStackSize(const pthread_attr_t& attributes) { |
| #if !defined(THREAD_SANITIZER) && defined(__GLIBC__) |
| // Generally glibc sets ample default stack sizes, so use the default there. |
| return 0; |
| #elif !defined(THREAD_SANITIZER) |
| // Other libcs (uclibc, musl, etc) tend to use smaller stacks, often too small |
| // for chromium. Make sure we have enough space to work with here. Note that |
| // for comparison glibc stacks are generally around 8MB. |
| return 2 * (1 << 20); |
| #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 |
| } |
| |
| void InitThreading() {} |
| |
| void TerminateOnThread() {} |
| |
| } // namespace base |