Started from my current stable build and slowly started merging everything in from the original until I could find the culprit of the bugs. This PR also has a few other features:
Fallback to ANSI decoder for INI files if unicode fails with a UnicodeDecodeException.
use concurrent.futures.ThreadPoolExecutor() for any InstallFolder instructions. The order of operation isn't important over there. We do not use multi-threading for any encapsulated destinations.
Add dictionary caching to mod repacking, to improve performance further. Mod repack code runs about 5-10x faster on my machines.
Other various refactors, I created a new PatchLogger here that respects the log message order, etc.
This path change seems to be slower than prior builds. I believe this is because I added too many resolve() calls for added safeguards. I'm guessing most can be removed?
Started from my current stable build and slowly started merging everything in from the original until I could find the culprit of the bugs. This PR also has a few other features:
concurrent.futures.ThreadPoolExecutor()
for anyInstallFolder
instructions. The order of operation isn't important over there. We do not use multi-threading for any encapsulated destinations.