Changeset 226725 in webkit for trunk/Source/JavaScriptCore/heap/MarkingConstraintSolver.h
- Timestamp:
- Jan 10, 2018, 11:41:12 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/heap/MarkingConstraintSolver.h
r226667 r226725 65 65 void execute(MarkingConstraint&); 66 66 67 // Parallel constraints can add parallel tasks.68 void addParallelTask(RefPtr<SharedTask<void(SlotVisitor&)>>, MarkingConstraint&);69 70 67 private: 71 68 void runExecutionThread(SlotVisitor&, SchedulerPreference, ScopedLambda<std::optional<unsigned>()> pickNext); 72 69 73 struct TaskWithConstraint { 74 TaskWithConstraint() { } 75 76 TaskWithConstraint(RefPtr<SharedTask<void(SlotVisitor&)>> task, MarkingConstraint* constraint) 77 : task(WTFMove(task)) 78 , constraint(constraint) 79 { 80 } 81 82 bool operator==(const TaskWithConstraint& other) const 83 { 84 return task == other.task 85 && constraint == other.constraint; 86 } 87 88 RefPtr<SharedTask<void(SlotVisitor&)>> task; 89 MarkingConstraint* constraint { nullptr }; 90 }; 91 70 void didExecute(ConstraintParallelism, unsigned index); 71 92 72 Heap& m_heap; 93 73 SlotVisitor& m_mainVisitor; 94 74 MarkingConstraintSet& m_set; 95 75 BitVector m_executed; 96 Deque<TaskWithConstraint, 32> m_toExecuteInParallel; 76 Deque<unsigned, 32> m_toExecuteInParallel; 77 BitVector m_toExecuteInParallelSet; 78 Vector<unsigned, 32> m_didExecuteInParallel; 97 79 Vector<unsigned, 32> m_toExecuteSequentially; 98 80 Lock m_lock;
Note:
See TracChangeset
for help on using the changeset viewer.