$OpenBSD: patch-src_build_cc,v 1.2 2020/02/29 14:29:28 rsadowski Exp $

Use a deque for the ready_ queue so that build order is not randomized
by using a set of pointers.

Index: src/build.cc
--- src/build.cc.orig
+++ src/build.cc
@@ -382,9 +382,8 @@ void Plan::EdgeWanted(const Edge* edge) {
 Edge* Plan::FindWork() {
   if (ready_.empty())
     return NULL;
-  set<Edge*>::iterator e = ready_.begin();
-  Edge* edge = *e;
-  ready_.erase(e);
+  Edge* edge = ready_.front();
+  ready_.pop_front();
   return edge;
 }
 
@@ -406,7 +405,7 @@ void Plan::ScheduleWork(map<Edge*, Want>::iterator wan
     pool->RetrieveReadyEdges(&ready_);
   } else {
     pool->EdgeScheduled(*edge);
-    ready_.insert(edge);
+    ready_.push_back(edge);
   }
 }
 
