diff options
Diffstat (limited to 'lld')
-rw-r--r-- | lld/ELF/OutputSections.cpp | 2 | ||||
-rw-r--r-- | lld/ELF/Relocations.cpp | 7 |
2 files changed, 3 insertions, 6 deletions
diff --git a/lld/ELF/OutputSections.cpp b/lld/ELF/OutputSections.cpp index 2251ecc83cde..a1aec83f4ac8 100644 --- a/lld/ELF/OutputSections.cpp +++ b/lld/ELF/OutputSections.cpp @@ -534,7 +534,7 @@ void OutputSection::writeTo(uint8_t *buf, parallel::TaskGroup &tg) { taskSize += sections[i]->getSize(); bool done = ++i == numSections; if (done || taskSize >= taskSizeLimit) { - tg.execute([=] { fn(begin, i); }); + tg.spawn([=] { fn(begin, i); }); if (done) break; begin = i; diff --git a/lld/ELF/Relocations.cpp b/lld/ELF/Relocations.cpp index 6f2280b678b4..bda979c3066a 100644 --- a/lld/ELF/Relocations.cpp +++ b/lld/ELF/Relocations.cpp @@ -1534,16 +1534,13 @@ template <class ELFT> void elf::scanRelocations() { scanner.template scanSection<ELFT>(*s); } }; - if (serial) - fn(); - else - tg.execute(fn); + tg.spawn(fn, serial); } // Both the main thread and thread pool index 0 use getThreadIndex()==0. Be // careful that they don't concurrently run scanSections. When serial is // true, fn() has finished at this point, so running execute is safe. - tg.execute([] { + tg.spawn([] { RelocationScanner scanner; for (Partition &part : partitions) { for (EhInputSection *sec : part.ehFrame->sections) |