From 736e0a05f8e576464851c468620fa9b892adfd50 Mon Sep 17 00:00:00 2001 From: "yangguo@chromium.org" Date: Wed, 5 Feb 2014 11:28:55 +0000 Subject: [PATCH] Use mutex in PostponeInterruptScope. To avoid race with e.g. StackGuard::RequestInstallCode called from another thread when both access postpone_interrupts_nesting_. R=mvstanton@chromium.org BUG=290964 LOG=N Review URL: https://codereview.chromium.org/138833006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/isolate.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/isolate.h b/src/isolate.h index 8b935fb..d93a862 100644 --- a/src/isolate.h +++ b/src/isolate.h @@ -1491,18 +1491,21 @@ class StackLimitCheck BASE_EMBEDDED { class PostponeInterruptsScope BASE_EMBEDDED { public: explicit PostponeInterruptsScope(Isolate* isolate) - : stack_guard_(isolate->stack_guard()) { + : stack_guard_(isolate->stack_guard()), isolate_(isolate) { + ExecutionAccess access(isolate_); stack_guard_->thread_local_.postpone_interrupts_nesting_++; stack_guard_->DisableInterrupts(); } ~PostponeInterruptsScope() { + ExecutionAccess access(isolate_); if (--stack_guard_->thread_local_.postpone_interrupts_nesting_ == 0) { stack_guard_->EnableInterrupts(); } } private: StackGuard* stack_guard_; + Isolate* isolate_; }; -- 2.7.4