Google storage: allow optional use of thread pool #2
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.
If
use_threads=True
for the Google storage initialization, a thread pool will be used rather than a process pool for fetching data. This is needed in some use cases, for instance if the google storage should be used from within a Celery task. Without this, an error is raised when starting workers from the process pool:AssertionError: daemonic processes are not allowed to have children
.This in turn is needed in catmaid/circuitmap, where we use
fafbseg
to request fragment IDs for locations from a Celery task.There might be more elegant ways to this (e.g. without modifying the parameters of
_get_seg_ids_gs()
), but this seemed minimally invasive, given that this might be a special case. Happy to change it though.