for (library : libraries) {
library.libraryStuffPart1();
queueItems.enqueueLibraryStuffPart2(library);
}
parallel for (queueItem : queueItems) {
queueItem.run();
}
for (library : libraries) {
try {
library.libraryStuffPart3();
} catch (...) {...}
}
so, we're missing try-catches for the first and second blocks. for the second one though, we'd have to use locking to avoid a race condition in the catch handler, and the errors there appear to be unrelated to the catch statement (which seems to be specifically for if it can't find the library). so, this fix just adds the catch statement to the first block
In stock ld, it goes roughly
however, zld is parallelized as such:
so, we're missing try-catches for the first and second blocks. for the second one though, we'd have to use locking to avoid a race condition in the catch handler, and the errors there appear to be unrelated to the catch statement (which seems to be specifically for if it can't find the library). so, this fix just adds the catch statement to the first block