Revision: 10959
Author:   [email protected]
Date:     Wed Mar  7 09:31:33 2012
Log: Profiler experiments: Honor postponing of interrupts in HandleStackGuardInterrupt

Review URL: https://chromiumcodereview.appspot.com/9620009
http://code.google.com/p/v8/source/detail?r=10959

Modified:
 /branches/bleeding_edge/src/execution.cc
 /branches/bleeding_edge/src/execution.h

=======================================
--- /branches/bleeding_edge/src/execution.cc    Tue Feb 28 02:32:02 2012
+++ /branches/bleeding_edge/src/execution.cc    Wed Mar  7 09:31:33 2012
@@ -374,6 +374,12 @@
   ExecutionAccess access(isolate_);
   reset_limits(access);
 }
+
+
+bool StackGuard::ShouldPostponeInterrupts() {
+  ExecutionAccess access(isolate_);
+  return should_postpone_interrupts(access);
+}


 bool StackGuard::IsInterrupted() {
@@ -874,6 +880,9 @@

 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");
=======================================
--- /branches/bleeding_edge/src/execution.h     Tue Feb 28 02:32:02 2012
+++ /branches/bleeding_edge/src/execution.h     Wed Mar  7 09:31:33 2012
@@ -226,6 +226,7 @@
   Address address_of_real_jslimit() {
     return reinterpret_cast<Address>(&thread_local_.real_jslimit_);
   }
+  bool ShouldPostponeInterrupts();

  private:
   StackGuard();

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to