Reviewers: Jakob,
Description:
Make sure semaphore used in Profiler is deleted
BUG=None
Please review this at https://codereview.chromium.org/23420004/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/log.cc
Index: src/log.cc
diff --git a/src/log.cc b/src/log.cc
index
1ddfd42cb31921008f3f5727ffe282773a7279c7..ff67d10868afa578561d4097d7d8f7fec0b7e08d
100644
--- a/src/log.cc
+++ b/src/log.cc
@@ -560,6 +560,14 @@ class Profiler: public Thread {
}
}
+ virtual void Run();
+
+ // Pause and Resume TickSample data collection.
+ bool paused() const { return paused_; }
+ void pause() { paused_ = true; }
+ void resume() { paused_ = false; }
+
+ private:
// Waits for a signal and removes profiling data.
bool Remove(TickSample* sample) {
buffer_semaphore_->Wait(); // Wait for an element.
@@ -570,14 +578,6 @@ class Profiler: public Thread {
return result;
}
- void Run();
-
- // Pause and Resume TickSample data collection.
- bool paused() const { return paused_; }
- void pause() { paused_ = true; }
- void resume() { paused_ = false; }
-
- private:
// Returns the next index in the cyclic buffer.
int Succ(int index) { return (index + 1) % kBufferSize; }
@@ -589,7 +589,8 @@ class Profiler: public Thread {
int head_; // Index to the buffer head.
int tail_; // Index to the buffer tail.
bool overflow_; // Tell whether a buffer overflow has occurred.
- Semaphore* buffer_semaphore_; // Sempahore used for buffer
synchronization.
+ // Sempahore used for buffer synchronization.
+ SmartPointer<Semaphore> buffer_semaphore_;
// Tells whether profiler is engaged, that is, processing thread is
stated.
bool engaged_;
--
--
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.