| Index: src/execution.cc
|
| diff --git a/src/execution.cc b/src/execution.cc
|
| index 1f019820b84e9da391ed1d7d80fc6770067f36bc..443d4b8d0f2af0df6652372baf52494f5b500131 100644
|
| --- a/src/execution.cc
|
| +++ b/src/execution.cc
|
| @@ -376,6 +376,12 @@ void StackGuard::DisableInterrupts() {
|
| }
|
|
|
|
|
| +bool StackGuard::ShouldPostponeInterrupts() {
|
| + ExecutionAccess access(isolate_);
|
| + return should_postpone_interrupts(access);
|
| +}
|
| +
|
| +
|
| bool StackGuard::IsInterrupted() {
|
| ExecutionAccess access(isolate_);
|
| return (thread_local_.interrupt_flags_ & INTERRUPT) != 0;
|
| @@ -874,6 +880,9 @@ void Execution::ProcessDebugMessages(bool debug_command_only) {
|
|
|
| MaybeObject* Execution::HandleStackGuardInterrupt(Isolate* isolate) {
|
| StackGuard* stack_guard = isolate->stack_guard();
|
| + if (stack_guard->ShouldPostponeInterrupts()) {
|
| + return isolate->heap()->undefined_value();
|
| + }
|
|
|
| if (stack_guard->IsGCRequest()) {
|
| isolate->heap()->CollectAllGarbage(false, "StackGuard GC request");
|
|
|