Factor out edge marking logic from Plan::AddSubTarget

Move the logic to mark edges as wanted over to a Plan::EdgeWanted method
so it can be re-used elsewhere later.
This commit is contained in:
Brad King 2015-08-06 13:30:09 -04:00
parent 70d356218b
commit 64acb1a22b
2 changed files with 9 additions and 3 deletions

View File

@ -327,11 +327,9 @@ bool Plan::AddSubTarget(Node* node, Node* dependent, string* err) {
// mark it now.
if (node->dirty() && want == kWantNothing) {
want = kWantToStart;
++wanted_edges_;
EdgeWanted(edge);
if (edge->AllInputsReady())
ScheduleWork(want_ins.first);
if (!edge->is_phony())
++command_edges_;
}
if (!want_ins.second)
@ -346,6 +344,12 @@ bool Plan::AddSubTarget(Node* node, Node* dependent, string* err) {
return true;
}
void Plan::EdgeWanted(Edge* edge) {
++wanted_edges_;
if (!edge->is_phony())
++command_edges_;
}
Edge* Plan::FindWork() {
if (ready_.empty())
return NULL;

View File

@ -96,6 +96,8 @@ private:
kWantToFinish
};
void EdgeWanted(Edge* edge);
/// Submits a ready edge as a candidate for execution.
/// The edge may be delayed from running, for example if it's a member of a
/// currently-full pool.