Index: src/heap/memory-reducer.h |
diff --git a/src/heap/memory-reducer.h b/src/heap/memory-reducer.h |
index fc7b2eaee569b34add4501d2874fde953d5b3c6f..0a4e2bf1f328447bfd9669a4a24d90cc2b0fe1ac 100644 |
--- a/src/heap/memory-reducer.h |
+++ b/src/heap/memory-reducer.h |
@@ -101,7 +101,8 @@ class MemoryReducer { |
bool can_start_incremental_gc; |
}; |
- explicit MemoryReducer(Heap* heap) : heap_(heap), state_(kDone, 0, 0.0) {} |
+ explicit MemoryReducer(Heap* heap) |
+ : heap_(heap), state_(kDone, 0, 0.0), pending_task_(NULL) {} |
// Callbacks. |
void NotifyTimer(const Event& event); |
void NotifyMarkCompact(const Event& event); |
@@ -112,6 +113,7 @@ class MemoryReducer { |
static State Step(const State& state, const Event& event); |
// Posts a timer task that will call NotifyTimer after the given delay. |
void ScheduleTimer(double delay_ms); |
+ void TearDown(); |
static const int kLongDelayMs; |
static const int kShortDelayMs; |
@@ -123,18 +125,20 @@ class MemoryReducer { |
class TimerTask : public v8::Task { |
public: |
explicit TimerTask(MemoryReducer* memory_reducer) |
- : memory_reducer_(memory_reducer) {} |
+ : memory_reducer_(memory_reducer), heap_is_teared_down_(false) {} |
virtual ~TimerTask() {} |
+ void NotifyHeapTearDown() { heap_is_teared_down_ = true; } |
private: |
// v8::Task overrides. |
void Run() override; |
MemoryReducer* memory_reducer_; |
+ bool heap_is_teared_down_; |
DISALLOW_COPY_AND_ASSIGN(TimerTask); |
}; |
- |
Heap* heap_; |
State state_; |
+ TimerTask* pending_task_; |
DISALLOW_COPY_AND_ASSIGN(MemoryReducer); |
}; |