config: refactor config providers to be less racey
We had a number of issues in practice with configuration providers where things would race and as well as some unsafe threading/false-sharing. This redesigns those components to avoid a number of issues in thread safety. There doesn't seem to be any regressions. However, it has pointed out a few things that are/were broken in the flatpak configuration provider. We will address those as part of a revamped build preferences that is more pluggable (See #344 and #352). Another piece that would be nice to apply on top of this is tracking the last selected configuration so when restarting Builder we keep the same config active (See #338). Fixes #359
Showing with 1282 additions and 1383 deletions
This diff is collapsed.