| OLD | NEW | 
|---|
| 1 // Copyright 2017 the V8 project authors. All rights reserved. | 1 // Copyright 2017 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef V8_HEAP_CONCURRENT_MARKING_ | 5 #ifndef V8_HEAP_CONCURRENT_MARKING_ | 
| 6 #define V8_HEAP_CONCURRENT_MARKING_ | 6 #define V8_HEAP_CONCURRENT_MARKING_ | 
| 7 | 7 | 
| 8 #include <vector> | 8 #include <vector> | 
| 9 | 9 | 
| 10 #include "src/allocation.h" | 10 #include "src/allocation.h" | 
| 11 #include "src/cancelable-task.h" | 11 #include "src/cancelable-task.h" | 
| 12 #include "src/utils.h" | 12 #include "src/utils.h" | 
| 13 #include "src/v8.h" | 13 #include "src/v8.h" | 
| 14 | 14 | 
| 15 namespace v8 { | 15 namespace v8 { | 
| 16 namespace internal { | 16 namespace internal { | 
| 17 | 17 | 
| 18 class Heap; | 18 class Heap; | 
| 19 class Isolate; | 19 class Isolate; | 
| 20 | 20 | 
| 21 class ConcurrentMarking { | 21 class ConcurrentMarking { | 
| 22  public: | 22  public: | 
| 23   explicit ConcurrentMarking(Heap* heap); | 23   explicit ConcurrentMarking(Heap* heap); | 
| 24   ~ConcurrentMarking(); | 24   ~ConcurrentMarking(); | 
| 25 | 25 | 
| 26   void AddRoot(HeapObject* object); | 26   void AddRoot(HeapObject* object); | 
| 27 | 27 | 
| 28   void StartMarkingTask(); | 28   void StartTask(); | 
| 29   void WaitForTaskToComplete(); | 29   void WaitForTaskToComplete(); | 
|  | 30   bool IsTaskPending() { return is_task_pending_; } | 
|  | 31   void EnsureTaskCompleted(); | 
| 30 | 32 | 
| 31  private: | 33  private: | 
| 32   class Task; | 34   class Task; | 
| 33   Heap* heap_; | 35   Heap* heap_; | 
| 34   base::Semaphore pending_task_; | 36   base::Semaphore pending_task_semaphore_; | 
|  | 37   bool is_task_pending_; | 
| 35   std::vector<HeapObject*> root_set_; | 38   std::vector<HeapObject*> root_set_; | 
| 36 }; | 39 }; | 
| 37 | 40 | 
| 38 }  // namespace internal | 41 }  // namespace internal | 
| 39 }  // namespace v8 | 42 }  // namespace v8 | 
| 40 | 43 | 
| 41 #endif  // V8_HEAP_PAGE_PARALLEL_JOB_ | 44 #endif  // V8_HEAP_PAGE_PARALLEL_JOB_ | 
| OLD | NEW | 
|---|