/
githubmirror
/
node
Обзор
Документация
Войти
/
githubmirror
/
node
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
deps/v8/src/execution/interrupts-scope.cc
33 строки
1 KB
Michaël Zasso
deps: update V8 to 11.3.244.4
31 мар 2023, 17:15
31 мар 2023, 17:15
f226350
Код
Авторство
О чём код?
// Copyright 2019 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "src/execution/interrupts-scope.h" #include "src/execution/isolate.h" namespace v8 { namespace internal { bool InterruptsScope::Intercept(StackGuard::InterruptFlag flag) { InterruptsScope* last_postpone_scope = nullptr; for (InterruptsScope* current = this; current; current = current->prev_) { // We only consider scopes related to passed flag. if (!(current->intercept_mask_ & flag)) continue; if (current->mode_ == kRunInterrupts) { // If innermost scope is kRunInterrupts scope, prevent interrupt from // being intercepted. break; } else { DCHECK_EQ(current->mode_, kPostponeInterrupts); last_postpone_scope = current; } } // If there is no postpone scope for passed flag then we should not intercept. if (!last_postpone_scope) return false; last_postpone_scope->intercepted_flags_ |= flag; return true; } } // namespace internal } // namespace v8