]> granicus.if.org Git - llvm/commitdiff
Fix llvm-dsymutil test in -DLLVM_ENABLE_THREADS=OFF mode
authorHans Wennborg <hans@hanshq.net>
Thu, 2 Nov 2017 20:22:03 +0000 (20:22 +0000)
committerHans Wennborg <hans@hanshq.net>
Thu, 2 Nov 2017 20:22:03 +0000 (20:22 +0000)
After r316999, tools/dsymutil/X86/alias.test started failing in builds
that have threading disabled.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317263 91177308-0d34-0410-b5e6-96231b3b80d8

tools/dsymutil/dsymutil.cpp

index 769668c8a9f282e065b81402a323706f18b441b6..9d9a24183798f5c145f8fa00783047c1f5d63631 100644 (file)
@@ -338,7 +338,6 @@ int main(int argc, char **argv) {
       NumThreads = 1;
     NumThreads = std::min<unsigned>(NumThreads, DebugMapPtrsOrErr->size());
 
-    llvm::ThreadPool Threads(NumThreads);
 
     // If there is more than one link to execute, we need to generate
     // temporary files.
@@ -366,17 +365,19 @@ int main(int argc, char **argv) {
       // FIXME: The DwarfLinker can have some very deep recursion that can max
       // out the (significantly smaller) stack when using threads. We don't
       // want this limitation when we only have a single thread.
-      if (NumThreads == 1)
+      if (NumThreads == 1) {
         LinkLambda();
-      else
+      } else {
+        llvm::ThreadPool Threads(NumThreads);
         Threads.async(LinkLambda);
+        Threads.wait();
+      }
 
       if (NeedsTempFiles)
         TempFiles.emplace_back(Map->getTriple().getArchName().str(),
                                OutputFile);
     }
 
-    Threads.wait();
 
     if (NeedsTempFiles &&
         !MachOUtils::generateUniversalBinary(