taskpool exhaustion in lld/wasm

On a 12" MacBook (2017) with 2 cores I get lld/wasm to be stuck in:


It seems the outer for loop exhausts the thread pool, and the inner ones trigger a new parallel for which never finishes because the pool is full. Is this a bug or am I missing something obvious?

Are you sure it’s not just taking “a long time”? If that build machine doesn’t have enormous amounts of memory you could end up with a link phase that takes tons of time for projects like clang or chrome.

Try linking a minimal case. If the bug you describe were there it should reproduce easily (maybe once you get up to enough object files or sections, whatever it’s iterating over).

It’s a wasm testcase that ends up with a 1 mb executable; after 15 minutes I killed it, it doesn’t do anything (note that it’s waiting on a conditional variable in ALL threads)


Can you check whether your build includes r358547?



Thanks; it did not (was off by a few days); i’ll try, that looks promising, thanks!