$OpenBSD: patch-src_build_cc,v 1.3 2020/12/02 20:24:22 sthen 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
@@ -381,9 +381,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;
 }
 
@@ -405,7 +404,7 @@ void Plan::ScheduleWork(map<Edge*, Want>::iterator wan
     pool->RetrieveReadyEdges(&ready_);
   } else {
     pool->EdgeScheduled(*edge);
-    ready_.insert(edge);
+    ready_.push_back(edge);
   }
 }
 
