Fix race between VisitSmiRoots and SetStackLimit.
authoryangguo@chromium.org <yangguo@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 18 Mar 2014 12:21:07 +0000 (12:21 +0000)
committeryangguo@chromium.org <yangguo@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 18 Mar 2014 12:21:07 +0000 (12:21 +0000)
R=hpayer@chromium.org

Review URL: https://codereview.chromium.org/198833006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/heap.cc

index 66b5274..4855ac0 100644 (file)
@@ -6161,6 +6161,8 @@ void Heap::IterateWeakRoots(ObjectVisitor* v, VisitMode mode) {
 
 
 void Heap::IterateSmiRoots(ObjectVisitor* v) {
+  // Acquire execution access since we are going to read stack limit values.
+  ExecutionAccess access(isolate());
   v->VisitPointers(&roots_[kSmiRootsStart], &roots_[kRootListLength]);
   v->Synchronize(VisitorSynchronization::kSmiRootList);
 }