diff options
Diffstat (limited to 'runtime/thread.cc')
-rw-r--r-- | runtime/thread.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/runtime/thread.cc b/runtime/thread.cc index 6656fe5493..75fff4397f 100644 --- a/runtime/thread.cc +++ b/runtime/thread.cc @@ -35,6 +35,7 @@ #include "art_field-inl.h" #include "art_method-inl.h" #include "base/bit_utils.h" +#include "base/memory_tool.h" #include "base/mutex.h" #include "base/timing_logger.h" #include "base/to_str.h" @@ -81,6 +82,12 @@ pthread_key_t Thread::pthread_key_self_; ConditionVariable* Thread::resume_cond_ = nullptr; const size_t Thread::kStackOverflowImplicitCheckSize = GetStackOverflowReservedBytes(kRuntimeISA); +// For implicit overflow checks we reserve an extra piece of memory at the bottom +// of the stack (lowest memory). The higher portion of the memory +// is protected against reads and the lower is available for use while +// throwing the StackOverflow exception. +constexpr size_t kStackOverflowProtectedSize = 4 * kMemoryToolStackGuardSizeScale * KB; + static const char* kThreadNameDuringStartup = "<native thread without managed peer>"; void Thread::InitCardTable() { |