From: yangguo@chromium.org Date: Wed, 5 Feb 2014 11:28:55 +0000 (+0000) Subject: Use mutex in PostponeInterruptScope. X-Git-Tag: upstream/4.7.83~10870 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=736e0a05f8e576464851c468620fa9b892adfd50;p=platform%2Fupstream%2Fv8.git 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 --- 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_; };