fix(adb/threadpool): remove waitgroups and fix segfault #522
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
the main fix is to remove the waitgroups in accounts-db loading/validating so we can have errors propagate correctly. while doing this, i also noticed a bug in the homo-threadpool impl where
addOne
to existing tasks will cause re-allocs on existing thread state leading to a segfault. there was also some code in repair which wouldjoin
the threadpool after a single schedule in a loop, which i assumed was a bug and fixed as well.there was also a bug which tsan found where an allocator was used in the registry without a lock which i fixed as well.
this lead to another bug in tsan about registry init race conditions which was fixed in 553c803.
What changed?
spawnThreadTasks
to use a homogeneous thread pool instead of raw thread spawningloadFromSnapshot
to return void instead of durationspawnThreadTasks