Blob Blame Raw
--- compiler-rt/lib/fuzzer/FuzzerDriver.cpp.orig	2019-02-13 14:24:24.239239031 -0600
+++ compiler-rt/lib/fuzzer/FuzzerDriver.cpp	2019-02-13 14:28:18.525530281 -0600
@@ -248,13 +248,16 @@
   Command Cmd(Args);
   Cmd.removeFlag("jobs");
   Cmd.removeFlag("workers");
-  Vector<std::thread> V;
+  Vector<std::shared_ptr<std::thread>> V;
   std::thread Pulse(PulseThread);
   Pulse.detach();
-  for (unsigned i = 0; i < NumWorkers; i++)
-    V.push_back(std::thread(WorkerThread, std::ref(Cmd), &Counter, NumJobs, &HasErrors));
+  for (unsigned i = 0; i < NumWorkers; i++) {
+    std::shared_ptr<std::thread> wt(new std::thread(WorkerThread, std::ref(Cmd), &Counter, NumJobs, &HasErrors));
+    V.push_back(wt);
+  }
   for (auto &T : V)
-    T.join();
+    T->join();
+  Vector<std::shared_ptr<std::thread>>().swap(V);
   return HasErrors ? 1 : 0;
 }