diff options
author | Rui Ueyama <ruiu@google.com> | 2015-09-21 19:12:36 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2015-09-21 19:12:36 +0000 |
commit | 98a98cffb62b5e90bf11deceb968d2ce1dd7a4b9 (patch) | |
tree | 3556a68dd10c8411d7240034528a80b3a041ac9c | |
parent | e526de5a47071d4cfb1ce181cc8ec3c575376588 (diff) | |
download | bcm5719-llvm-98a98cffb62b5e90bf11deceb968d2ce1dd7a4b9.tar.gz bcm5719-llvm-98a98cffb62b5e90bf11deceb968d2ce1dd7a4b9.zip |
COFF: Do not call std::async with std::launch::async if multithreading is disabled.
llvm-svn: 248193
-rw-r--r-- | lld/COFF/SymbolTable.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lld/COFF/SymbolTable.cpp b/lld/COFF/SymbolTable.cpp index accc8ef33fc..daac487e6c9 100644 --- a/lld/COFF/SymbolTable.cpp +++ b/lld/COFF/SymbolTable.cpp @@ -24,15 +24,21 @@ namespace lld { namespace coff { void SymbolTable::addFile(std::unique_ptr<InputFile> FileP) { +#if LLVM_ENABLE_THREADS + std::launch Policy = std::launch::async; +#else + std::launch Policy = std::launch::deferred; +#endif + InputFile *File = FileP.get(); Files.push_back(std::move(FileP)); if (auto *F = dyn_cast<ArchiveFile>(File)) { ArchiveQueue.push_back( - std::async(std::launch::async, [=]() { F->parse(); return F; })); + std::async(Policy, [=]() { F->parse(); return F; })); return; } ObjectQueue.push_back( - std::async(std::launch::async, [=]() { File->parse(); return File; })); + std::async(Policy, [=]() { File->parse(); return File; })); if (auto *F = dyn_cast<ObjectFile>(File)) { ObjectFiles.push_back(F); } else if (auto *F = dyn_cast<BitcodeFile>(File)) { |