Revision: 14340
Author:   [email protected]
Date:     Thu Apr 18 09:23:57 2013
Log:      Rollback of r13735 in 3.17 branch.

Send SIGPROF signals on the profiler event processor thread

BUG=v8:2364
[email protected]

Review URL: https://codereview.chromium.org/14087016
http://code.google.com/p/v8/source/detail?r=14340

Modified:
 /branches/3.17/src/circular-queue.cc
 /branches/3.17/src/circular-queue.h
 /branches/3.17/src/cpu-profiler.cc
 /branches/3.17/src/cpu-profiler.h
 /branches/3.17/src/flag-definitions.h
 /branches/3.17/src/platform-cygwin.cc
 /branches/3.17/src/platform-freebsd.cc
 /branches/3.17/src/platform-linux.cc
 /branches/3.17/src/platform-macos.cc
 /branches/3.17/src/platform-nullos.cc
 /branches/3.17/src/platform-openbsd.cc
 /branches/3.17/src/platform-solaris.cc
 /branches/3.17/src/platform-win32.cc
 /branches/3.17/src/platform.h
 /branches/3.17/src/version.cc
 /branches/3.17/test/cctest/test-cpu-profiler.cc

=======================================
--- /branches/3.17/src/circular-queue.cc        Wed Feb 27 01:34:27 2013
+++ /branches/3.17/src/circular-queue.cc        Thu Apr 18 09:23:57 2013
@@ -33,16 +33,18 @@
 namespace internal {


-SamplingCircularQueue::SamplingCircularQueue(
-    int record_size_in_bytes,
-    int desired_chunk_size_in_bytes,
-    int buffer_size_in_chunks,
-    bool keep_producer_consumer_distance)
+SamplingCircularQueue::SamplingCircularQueue(int record_size_in_bytes,
+ int desired_chunk_size_in_bytes,
+                                             int buffer_size_in_chunks)
     : record_size_(record_size_in_bytes / sizeof(Cell)),
chunk_size_in_bytes_(desired_chunk_size_in_bytes / record_size_in_bytes *
                         record_size_in_bytes),
       chunk_size_(chunk_size_in_bytes_ / sizeof(Cell)),
       buffer_size_(chunk_size_ * buffer_size_in_chunks),
+      // The distance ensures that producer and consumer never step on
+      // each other's chunks and helps eviction of produced data from
+      // the CPU cache (having that chunk size is bigger than the cache.)
+      producer_consumer_distance_(2 * chunk_size_),
       buffer_(NewArray<Cell>(buffer_size_ + 1)) {
   ASSERT(buffer_size_in_chunks > 2);
   // Clean up the whole buffer to avoid encountering a random kEnd
@@ -72,13 +74,7 @@
   ASSERT(reinterpret_cast<byte*>(consumer_pos_ + 1) <=
          positions_ + positions_size);
   consumer_pos_->dequeue_chunk_pos = buffer_;
-  consumer_pos_->dequeue_chunk_poll_pos = buffer_;
-  // The distance ensures that producer and consumer never step on
-  // each other's chunks and helps eviction of produced data from
-  // the CPU cache (having that chunk size is bigger than the cache.)
-  if (keep_producer_consumer_distance) {
-    consumer_pos_->dequeue_chunk_poll_pos += 2 * chunk_size_;
-  }
+ consumer_pos_->dequeue_chunk_poll_pos = buffer_ + producer_consumer_distance_;
   consumer_pos_->dequeue_pos = NULL;
 }

=======================================
--- /branches/3.17/src/circular-queue.h Wed Feb 27 01:34:27 2013
+++ /branches/3.17/src/circular-queue.h Thu Apr 18 09:23:57 2013
@@ -47,8 +47,7 @@
   // Executed on the application thread.
   SamplingCircularQueue(int record_size_in_bytes,
                         int desired_chunk_size_in_bytes,
-                        int buffer_size_in_chunks,
-                        bool keep_producer_consumer_distance = true);
+                        int buffer_size_in_chunks);
   ~SamplingCircularQueue();

   // Enqueue returns a pointer to a memory location for storing the next
@@ -89,6 +88,7 @@
   const int chunk_size_in_bytes_;
   const int chunk_size_;
   const int buffer_size_;
+  const int producer_consumer_distance_;
   Cell* buffer_;
   byte* positions_;
   ProducerPosition* producer_pos_;
=======================================
--- /branches/3.17/src/cpu-profiler.cc  Wed Feb 27 01:34:27 2013
+++ /branches/3.17/src/cpu-profiler.cc  Thu Apr 18 09:23:57 2013
@@ -45,18 +45,13 @@
 static const int kProfilerStackSize = 64 * KB;


-ProfilerEventsProcessor::ProfilerEventsProcessor(ProfileGenerator* generator,
-                                                 Sampler* sampler,
-                                                 int period_in_useconds)
+ProfilerEventsProcessor::ProfilerEventsProcessor(ProfileGenerator* generator)
     : Thread(Thread::Options("v8:ProfEvntProc", kProfilerStackSize)),
       generator_(generator),
-      sampler_(sampler),
       running_(true),
-      period_in_useconds_(period_in_useconds),
       ticks_buffer_(sizeof(TickSampleEventRecord),
                     kTickSamplesBufferChunkSize,
-                    kTickSamplesBufferChunksCount,
-                    !Sampler::CanSampleOnProfilerEventsProcessorThread()),
+                    kTickSamplesBufferChunksCount),
       enqueue_order_(0) {
 }

@@ -242,44 +237,19 @@
     }
   }
 }
-
-
-void ProfilerEventsProcessor::ProcessEventsAndDoSample(
-    unsigned* dequeue_order) {
-  int64_t stop_time = OS::Ticks() + period_in_useconds_;
-  // Keep processing existing events until we need to do next sample.
-  while (OS::Ticks() < stop_time) {
-    if (ProcessTicks(*dequeue_order)) {
-      // All ticks of the current dequeue_order are processed,
-      // proceed to the next code event.
-      ProcessCodeEvent(dequeue_order);
-    }
-  }
-  // Schedule next sample. sampler_ is NULL in tests.
-  if (sampler_)
-    sampler_->DoSample();
-}
-
-
-void ProfilerEventsProcessor::ProcessEventsAndYield(unsigned* dequeue_order) {
-  if (ProcessTicks(*dequeue_order)) {
-    // All ticks of the current dequeue_order are processed,
-    // proceed to the next code event.
-    ProcessCodeEvent(dequeue_order);
-  }
-  YieldCPU();
-}


 void ProfilerEventsProcessor::Run() {
   unsigned dequeue_order = 0;

   while (running_) {
-    if (Sampler::CanSampleOnProfilerEventsProcessorThread()) {
-      ProcessEventsAndDoSample(&dequeue_order);
-    } else {
-      ProcessEventsAndYield(&dequeue_order);
+    // Process ticks until we have any.
+    if (ProcessTicks(dequeue_order)) {
+      // All ticks of the current dequeue_order are processed,
+      // proceed to the next code event.
+      ProcessCodeEvent(&dequeue_order);
     }
+    YieldCPU();
   }

   // Process remaining tick events.
@@ -516,15 +486,13 @@
   if (processor_ == NULL) {
     Isolate* isolate = Isolate::Current();

- Sampler* sampler = reinterpret_cast<Sampler*>(isolate->logger()->ticker_);
     // Disable logging when using the new implementation.
     saved_logging_nesting_ = isolate->logger()->logging_nesting_;
     isolate->logger()->logging_nesting_ = 0;
     generator_ = new ProfileGenerator(profiles_);
-    processor_ = new ProfilerEventsProcessor(generator_,
-                                             sampler,
- FLAG_cpu_profiler_sampling_period);
+    processor_ = new ProfilerEventsProcessor(generator_);
     is_profiling_ = true;
+    processor_->Start();
     // Enumerate stuff we already have in the heap.
     if (isolate->heap()->HasBeenSetUp()) {
       if (!FLAG_prof_browser_mode) {
@@ -537,13 +505,12 @@
       isolate->logger()->LogAccessorCallbacks();
     }
     // Enable stack sampling.
+ Sampler* sampler = reinterpret_cast<Sampler*>(isolate->logger()->ticker_);
     if (!sampler->IsActive()) {
       sampler->Start();
       need_to_stop_sampler_ = true;
     }
-    sampler->SetHasProcessingThread(true);
     sampler->IncreaseProfilingDepth();
-    processor_->Start();
   }
 }

@@ -581,7 +548,6 @@
   Logger* logger = Isolate::Current()->logger();
   Sampler* sampler = reinterpret_cast<Sampler*>(logger->ticker_);
   sampler->DecreaseProfilingDepth();
-  sampler->SetHasProcessingThread(false);
   if (need_to_stop_sampler_) {
     sampler->Stop();
     need_to_stop_sampler_ = false;
=======================================
--- /branches/3.17/src/cpu-profiler.h   Wed Feb 27 01:34:27 2013
+++ /branches/3.17/src/cpu-profiler.h   Thu Apr 18 09:23:57 2013
@@ -124,9 +124,7 @@
 // methods called by event producers: VM and stack sampler threads.
 class ProfilerEventsProcessor : public Thread {
  public:
-  ProfilerEventsProcessor(ProfileGenerator* generator,
-                          Sampler* sampler,
-                          int period_in_useconds);
+  explicit ProfilerEventsProcessor(ProfileGenerator* generator);
   virtual ~ProfilerEventsProcessor() {}

   // Thread control.
@@ -175,16 +173,11 @@
   // Called from events processing thread (Run() method.)
   bool ProcessCodeEvent(unsigned* dequeue_order);
   bool ProcessTicks(unsigned dequeue_order);
-  void ProcessEventsAndDoSample(unsigned* dequeue_order);
-  void ProcessEventsAndYield(unsigned* dequeue_order);

INLINE(static bool FilterOutCodeCreateEvent(Logger::LogEventsAndTags tag));

   ProfileGenerator* generator_;
-  Sampler* sampler_;
   bool running_;
-  // Sampling period in microseconds.
-  const int period_in_useconds_;
   UnboundQueue<CodeEventsContainer> events_buffer_;
   SamplingCircularQueue ticks_buffer_;
   UnboundQueue<TickSampleEventRecord> ticks_from_vm_buffer_;
=======================================
--- /branches/3.17/src/flag-definitions.h       Thu Mar 28 09:31:02 2013
+++ /branches/3.17/src/flag-definitions.h       Thu Apr 18 09:23:57 2013
@@ -365,10 +365,6 @@

DEFINE_bool(cache_prototype_transitions, true, "cache prototype transitions")

-// cpu-profiler.cc
-DEFINE_int(cpu_profiler_sampling_period, 1000,
-           "CPU profiler sampling period in microseconds")
-
 // debug.cc
DEFINE_bool(trace_debug_json, false, "trace debugging JSON request/response")
 DEFINE_bool(trace_js_array_abuse, false,
=======================================
--- /branches/3.17/src/platform-cygwin.cc       Wed Feb 27 01:34:27 2013
+++ /branches/3.17/src/platform-cygwin.cc       Thu Apr 18 09:23:57 2013
@@ -774,23 +774,6 @@
   SamplerThread::RemoveActiveSampler(this);
   SetActive(false);
 }
-
-
-bool Sampler::CanSampleOnProfilerEventsProcessorThread() {
-  return false;
-}
-
-
-void Sampler::DoSample() {
-}
-
-
-void Sampler::StartProfiling() {
-}
-
-
-void Sampler::StopProfiling() {
-}


 } }  // namespace v8::internal
=======================================
--- /branches/3.17/src/platform-freebsd.cc      Wed Feb 27 01:34:27 2013
+++ /branches/3.17/src/platform-freebsd.cc      Thu Apr 18 09:23:57 2013
@@ -896,23 +896,6 @@
   SignalSender::RemoveActiveSampler(this);
   SetActive(false);
 }
-
-
-bool Sampler::CanSampleOnProfilerEventsProcessorThread() {
-  return false;
-}
-
-
-void Sampler::DoSample() {
-}
-
-
-void Sampler::StartProfiling() {
-}
-
-
-void Sampler::StopProfiling() {
-}


 } }  // namespace v8::internal
=======================================
--- /branches/3.17/src/platform-linux.cc        Wed Feb 27 01:34:27 2013
+++ /branches/3.17/src/platform-linux.cc        Thu Apr 18 09:23:57 2013
@@ -1127,27 +1127,29 @@
 }


-class CpuProfilerSignalHandler {
+class Sampler::PlatformData : public Malloced {
  public:
+  PlatformData() : vm_tid_(GetThreadID()) {}
+
+  int vm_tid() const { return vm_tid_; }
+
+ private:
+  const int vm_tid_;
+};
+
+
+class SignalSender : public Thread {
+ public:
+  static const int kSignalSenderStackSize = 64 * KB;
+
+  explicit SignalSender(int interval)
+      : Thread(Thread::Options("SignalSender", kSignalSenderStackSize)),
+        vm_tgid_(getpid()),
+        interval_(interval) {}
+
   static void SetUp() { if (!mutex_) mutex_ = OS::CreateMutex(); }
   static void TearDown() { delete mutex_; }

-  static bool RegisterProfilingSampler() {
-    ScopedLock lock(mutex_);
-    if (!profiling_samplers_count_) InstallSignalHandler();
-    ++profiling_samplers_count_;
-    return signal_handler_installed_;
-  }
-
-  static void UnregisterProfilingSampler() {
-    ScopedLock lock(mutex_);
-    ASSERT(profiling_samplers_count_ > 0);
-    if (!profiling_samplers_count_) return;
-    if (profiling_samplers_count_ == 1) RestoreSignalHandler();
-    --profiling_samplers_count_;
-  }
-
- private:
   static void InstallSignalHandler() {
     struct sigaction sa;
     sa.sa_sigaction = ProfilerSignalHandler;
@@ -1163,61 +1165,6 @@
       signal_handler_installed_ = false;
     }
   }
-
-  // Protects the process wide state below.
-  static Mutex* mutex_;
-  static int profiling_samplers_count_;
-  static bool signal_handler_installed_;
-  static struct sigaction old_signal_handler_;
-};
-
-
-Mutex* CpuProfilerSignalHandler::mutex_ = NULL;
-int CpuProfilerSignalHandler::profiling_samplers_count_ = 0;
-bool CpuProfilerSignalHandler::signal_handler_installed_ = false;
-struct sigaction CpuProfilerSignalHandler::old_signal_handler_;
-
-
-class Sampler::PlatformData : public Malloced {
- public:
-  PlatformData()
-      : vm_tgid_(getpid()),
-        vm_tid_(GetThreadID()),
-        signal_handler_installed_(false) {}
-
-  void set_signal_handler_installed(bool value) {
-    signal_handler_installed_ = value;
-  }
-
-  void SendProfilingSignal() {
-    if (!signal_handler_installed_) return;
-    // Glibc doesn't provide a wrapper for tgkill(2).
-#if defined(ANDROID)
-    syscall(__NR_tgkill, vm_tgid_, vm_tid_, SIGPROF);
-#else
-    int result = syscall(SYS_tgkill, vm_tgid_, vm_tid_, SIGPROF);
-    USE(result);
-    ASSERT(result == 0);
-#endif
-  }
-
- private:
-  const int vm_tgid_;
-  const int vm_tid_;
-  bool signal_handler_installed_;
-};
-
-
-class SignalSender : public Thread {
- public:
-  static const int kSignalSenderStackSize = 64 * KB;
-
-  explicit SignalSender(int interval)
-      : Thread(Thread::Options("SignalSender", kSignalSenderStackSize)),
-        interval_(interval) {}
-
-  static void SetUp() { if (!mutex_) mutex_ = OS::CreateMutex(); }
-  static void TearDown() { delete mutex_; }

   static void AddActiveSampler(Sampler* sampler) {
     ScopedLock lock(mutex_);
@@ -1239,6 +1186,7 @@
       RuntimeProfiler::StopRuntimeProfilerThreadBeforeShutdown(instance_);
       delete instance_;
       instance_ = NULL;
+      RestoreSignalHandler();
     }
   }

@@ -1250,8 +1198,10 @@
       // When CPU profiling is enabled both JavaScript and C++ code is
       // profiled. We must not suspend.
       if (state == SamplerRegistry::HAS_CPU_PROFILING_SAMPLERS) {
+        if (!signal_handler_installed_) InstallSignalHandler();
         SamplerRegistry::IterateActiveSamplers(&DoCpuProfile, this);
       } else {
+        if (signal_handler_installed_) RestoreSignalHandler();
         if (RuntimeProfiler::WaitForSomeIsolateToEnterJS()) continue;
       }
Sleep(); // TODO(svenpanne) Figure out if OS:Sleep(interval_) is enough.
@@ -1260,7 +1210,20 @@

   static void DoCpuProfile(Sampler* sampler, void* raw_sender) {
     if (!sampler->IsProfiling()) return;
-    sampler->DoSample();
+    SignalSender* sender = reinterpret_cast<SignalSender*>(raw_sender);
+    sender->SendProfilingSignal(sampler->platform_data()->vm_tid());
+  }
+
+  void SendProfilingSignal(int tid) {
+    if (!signal_handler_installed_) return;
+    // Glibc doesn't provide a wrapper for tgkill(2).
+#if defined(ANDROID)
+    syscall(__NR_tgkill, vm_tgid_, tid, SIGPROF);
+#else
+    int result = syscall(SYS_tgkill, vm_tgid_, tid, SIGPROF);
+    USE(result);
+    ASSERT(result == 0);
+#endif
   }

   void Sleep() {
@@ -1284,11 +1247,13 @@
 #endif  // ANDROID
   }

+  const int vm_tgid_;
   const int interval_;

   // Protects the process wide state below.
   static Mutex* mutex_;
   static SignalSender* instance_;
+  static bool signal_handler_installed_;
   static struct sigaction old_signal_handler_;

  private:
@@ -1299,6 +1264,7 @@
 Mutex* SignalSender::mutex_ = NULL;
 SignalSender* SignalSender::instance_ = NULL;
 struct sigaction SignalSender::old_signal_handler_;
+bool SignalSender::signal_handler_installed_ = false;


 void OS::SetUp() {
@@ -1326,12 +1292,10 @@
   }
 #endif
   SignalSender::SetUp();
-  CpuProfilerSignalHandler::SetUp();
 }


 void OS::TearDown() {
-  CpuProfilerSignalHandler::TearDown();
   SignalSender::TearDown();
   delete limit_mutex;
 }
@@ -1341,7 +1305,6 @@
     : isolate_(isolate),
       interval_(interval),
       profiling_(false),
-      has_processing_thread_(false),
       active_(false),
       samples_taken_(0) {
   data_ = new PlatformData;
@@ -1366,28 +1329,6 @@
   SignalSender::RemoveActiveSampler(this);
   SetActive(false);
 }
-
-
-bool Sampler::CanSampleOnProfilerEventsProcessorThread() {
-  return true;
-}
-
-
-void Sampler::DoSample() {
-  platform_data()->SendProfilingSignal();
-}
-
-
-void Sampler::StartProfiling() {
-  platform_data()->set_signal_handler_installed(
-      CpuProfilerSignalHandler::RegisterProfilingSampler());
-}
-
-
-void Sampler::StopProfiling() {
-  CpuProfilerSignalHandler::UnregisterProfilingSampler();
-  platform_data()->set_signal_handler_installed(false);
-}


 } }  // namespace v8::internal
=======================================
--- /branches/3.17/src/platform-macos.cc        Wed Feb 27 01:34:27 2013
+++ /branches/3.17/src/platform-macos.cc        Thu Apr 18 09:23:57 2013
@@ -920,23 +920,6 @@
   SamplerThread::RemoveActiveSampler(this);
   SetActive(false);
 }
-
-
-bool Sampler::CanSampleOnProfilerEventsProcessorThread() {
-  return false;
-}
-
-
-void Sampler::DoSample() {
-}
-
-
-void Sampler::StartProfiling() {
-}
-
-
-void Sampler::StopProfiling() {
-}


 } }  // namespace v8::internal
=======================================
--- /branches/3.17/src/platform-nullos.cc       Wed Feb 27 01:34:27 2013
+++ /branches/3.17/src/platform-nullos.cc       Thu Apr 18 09:23:57 2013
@@ -523,27 +523,6 @@
 void ProfileSampler::Stop() {
   UNIMPLEMENTED();
 }
-
-
-bool Sampler::CanSampleOnProfilerEventsProcessorThread() {
-  UNIMPLEMENTED();
-  return false;
-}
-
-
-void Sampler::DoSample() {
-  UNIMPLEMENTED();
-}
-
-
-void Sampler::StartProfiling() {
-  UNIMPLEMENTED();
-}
-
-
-void Sampler::StopProfiling() {
-  UNIMPLEMENTED();
-}


 } }  // namespace v8::internal
=======================================
--- /branches/3.17/src/platform-openbsd.cc      Wed Feb 27 01:34:27 2013
+++ /branches/3.17/src/platform-openbsd.cc      Thu Apr 18 09:23:57 2013
@@ -953,23 +953,6 @@
   SignalSender::RemoveActiveSampler(this);
   SetActive(false);
 }
-
-
-bool Sampler::CanSampleOnProfilerEventsProcessorThread() {
-  return false;
-}
-
-
-void Sampler::DoSample() {
-}
-
-
-void Sampler::StartProfiling() {
-}
-
-
-void Sampler::StopProfiling() {
-}


 } }  // namespace v8::internal
=======================================
--- /branches/3.17/src/platform-solaris.cc      Wed Feb 27 01:34:27 2013
+++ /branches/3.17/src/platform-solaris.cc      Thu Apr 18 09:23:57 2013
@@ -871,23 +871,5 @@
   SignalSender::RemoveActiveSampler(this);
   SetActive(false);
 }
-
-
-bool Sampler::CanSampleOnProfilerEventsProcessorThread() {
-  return false;
-}
-
-
-void Sampler::DoSample() {
-}
-
-
-void Sampler::StartProfiling() {
-}
-
-
-void Sampler::StopProfiling() {
-}
-

 } }  // namespace v8::internal
=======================================
--- /branches/3.17/src/platform-win32.cc        Wed Feb 27 01:34:27 2013
+++ /branches/3.17/src/platform-win32.cc        Thu Apr 18 09:23:57 2013
@@ -2151,23 +2151,6 @@
   SamplerThread::RemoveActiveSampler(this);
   SetActive(false);
 }
-
-
-bool Sampler::CanSampleOnProfilerEventsProcessorThread() {
-  return false;
-}
-
-
-void Sampler::DoSample() {
-}
-
-
-void Sampler::StartProfiling() {
-}
-
-
-void Sampler::StopProfiling() {
-}


 } }  // namespace v8::internal
=======================================
--- /branches/3.17/src/platform.h       Wed Feb 27 01:34:27 2013
+++ /branches/3.17/src/platform.h       Thu Apr 18 09:23:57 2013
@@ -766,17 +766,10 @@
   void Start();
   void Stop();

-  // Whether the sampling thread should use this Sampler for CPU profiling?
-  bool IsProfiling() const {
-    return NoBarrier_Load(&profiling_) > 0 &&
-        !NoBarrier_Load(&has_processing_thread_);
-  }
-  void IncreaseProfilingDepth() {
-    if (NoBarrier_AtomicIncrement(&profiling_, 1) == 1) StartProfiling();
-  }
-  void DecreaseProfilingDepth() {
-    if (!NoBarrier_AtomicIncrement(&profiling_, -1)) StopProfiling();
-  }
+  // Is the sampler used for profiling?
+  bool IsProfiling() const { return NoBarrier_Load(&profiling_) > 0; }
+ void IncreaseProfilingDepth() { NoBarrier_AtomicIncrement(&profiling_, 1); } + void DecreaseProfilingDepth() { NoBarrier_AtomicIncrement(&profiling_, -1); }

   // Whether the sampler is running (that is, consumes resources).
   bool IsActive() const { return NoBarrier_Load(&active_); }
@@ -791,14 +784,6 @@
   PlatformData* data() { return data_; }

   PlatformData* platform_data() { return data_; }
-
-  // If true next sample must be initiated on the profiler event processor
-  // thread right after latest sample is processed.
-  static bool CanSampleOnProfilerEventsProcessorThread();
-  void DoSample();
-  void SetHasProcessingThread(bool value) {
-    NoBarrier_Store(&has_processing_thread_, value);
-  }

  protected:
   virtual void DoSampleStack(TickSample* sample) = 0;
@@ -806,16 +791,10 @@
  private:
   void SetActive(bool value) { NoBarrier_Store(&active_, value); }
   void IncSamplesTaken() { if (++samples_taken_ < 0) samples_taken_ = 0; }
-
- // Perform platform-specific initialization before DoSample() may be invoked.
-  void StartProfiling();
-  // Perform platform-specific cleanup after profiling.
-  void StopProfiling();

   Isolate* isolate_;
   const int interval_;
   Atomic32 profiling_;
-  Atomic32 has_processing_thread_;
   Atomic32 active_;
   PlatformData* data_;  // Platform specific data.
   int samples_taken_;  // Counts stack samples taken.
=======================================
--- /branches/3.17/src/version.cc       Wed Apr 17 09:54:52 2013
+++ /branches/3.17/src/version.cc       Thu Apr 18 09:23:57 2013
@@ -35,7 +35,7 @@
 #define MAJOR_VERSION     3
 #define MINOR_VERSION     17
 #define BUILD_NUMBER      6
-#define PATCH_LEVEL       8
+#define PATCH_LEVEL       9
 // Use 1 for candidates and 0 otherwise.
 // (Boolean macro values are not supported by all preprocessors.)
 #define IS_CANDIDATE_VERSION 0
=======================================
--- /branches/3.17/test/cctest/test-cpu-profiler.cc     Wed Feb 27 01:34:27 2013
+++ /branches/3.17/test/cctest/test-cpu-profiler.cc     Thu Apr 18 09:23:57 2013
@@ -20,7 +20,7 @@
 TEST(StartStop) {
   CpuProfilesCollection profiles;
   ProfileGenerator generator(&profiles);
-  ProfilerEventsProcessor processor(&generator, NULL, 100);
+  ProfilerEventsProcessor processor(&generator);
   processor.Start();
   processor.Stop();
   processor.Join();
@@ -84,7 +84,7 @@
   CpuProfilesCollection profiles;
   profiles.StartProfiling("", 1);
   ProfileGenerator generator(&profiles);
-  ProfilerEventsProcessor processor(&generator, NULL, 100);
+  ProfilerEventsProcessor processor(&generator);
   processor.Start();

   // Enqueue code creation events.
@@ -145,7 +145,7 @@
   CpuProfilesCollection profiles;
   profiles.StartProfiling("", 1);
   ProfileGenerator generator(&profiles);
-  ProfilerEventsProcessor processor(&generator, NULL, 100);
+  ProfilerEventsProcessor processor(&generator);
   processor.Start();

   processor.CodeCreateEvent(i::Logger::BUILTIN_TAG,
@@ -235,7 +235,7 @@
   CpuProfilesCollection profiles;
   profiles.StartProfiling("", 1);
   ProfileGenerator generator(&profiles);
-  ProfilerEventsProcessor processor(&generator, NULL, 100);
+  ProfilerEventsProcessor processor(&generator);
   processor.Start();

   processor.CodeCreateEvent(i::Logger::BUILTIN_TAG,

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to