| Index: src/cpu-profiler.h
|
| diff --git a/src/cpu-profiler.h b/src/cpu-profiler.h
|
| index 81f9ae394b0d90a37ac307524302365dd13bfbc9..03b81764851cea6881e33a4d42cdbd130ecaab51 100644
|
| --- a/src/cpu-profiler.h
|
| +++ b/src/cpu-profiler.h
|
| @@ -105,6 +105,11 @@ class CodeAliasEventRecord : public CodeEventRecord {
|
|
|
| class TickSampleEventRecord BASE_EMBEDDED {
|
| public:
|
| + TickSampleEventRecord()
|
| + : filler(1) {
|
| + ASSERT(filler != SamplingCircularQueue::kClear);
|
| + }
|
| +
|
| // The first machine word of a TickSampleEventRecord must not ever
|
| // become equal to SamplingCircularQueue::kClear. As both order and
|
| // TickSample's first field are not reliable in this sense (order
|
| @@ -119,9 +124,6 @@ class TickSampleEventRecord BASE_EMBEDDED {
|
| }
|
|
|
| INLINE(static TickSampleEventRecord* init(void* value));
|
| -
|
| - private:
|
| - DISALLOW_IMPLICIT_CONSTRUCTORS(TickSampleEventRecord);
|
| };
|
|
|
|
|
| @@ -159,6 +161,8 @@ class ProfilerEventsProcessor : public Thread {
|
| void RegExpCodeCreateEvent(Logger::LogEventsAndTags tag,
|
| const char* prefix, String* name,
|
| Address start, unsigned size);
|
| + // Puts current stack into tick sample events buffer.
|
| + void AddCurrentStack();
|
|
|
| // Tick sample events are filled directly in the buffer of the circular
|
| // queue (because the structure is of fixed width, but usually not all
|
| @@ -184,6 +188,7 @@ class ProfilerEventsProcessor : public Thread {
|
| bool running_;
|
| UnboundQueue<CodeEventsContainer> events_buffer_;
|
| SamplingCircularQueue ticks_buffer_;
|
| + UnboundQueue<TickSampleEventRecord> ticks_from_vm_buffer_;
|
| unsigned enqueue_order_;
|
| };
|
|
|
|
|