Index: runtime/vm/thread_pool.cc |
diff --git a/runtime/vm/thread_pool.cc b/runtime/vm/thread_pool.cc |
index 8050833851e76dcf9ebf7ad25252bb842e24aa91..4c73446f0c5f78fd240f766636d228d47a976a6e 100644 |
--- a/runtime/vm/thread_pool.cc |
+++ b/runtime/vm/thread_pool.cc |
@@ -447,7 +447,10 @@ void ThreadPool::Worker::Main(uword args) { |
ThreadPool* pool; |
// Set the thread's stack_base based on the current stack pointer. |
- os_thread->set_stack_base(Thread::GetCurrentStackPointer()); |
+ uword current_sp = Thread::GetCurrentStackPointer(); |
+ if (current_sp > os_thread->stack_base()) { |
+ os_thread->set_stack_base(current_sp); |
+ } |
siva
2017/04/13 01:50:18
Which situation causes the code inside the 'if' st
|
{ |
MonitorLocker ml(&worker->monitor_); |