Handle ImportError from multiprocessing module (#1400)
Termux's Python environment doesn't provide sem_open, but fails with a nested `ImportError` on import attempts: ImportError: cannot import name 'SemLock' from '_multiprocessing' This updates the existing handling for AWS Lambda to catch both `OSError` and `ImportError`.
This commit is contained in:
parent
f6393a20fc
commit
865f536143
@ -662,9 +662,9 @@ def reformat_many(
|
|||||||
worker_count = min(worker_count, 61)
|
worker_count = min(worker_count, 61)
|
||||||
try:
|
try:
|
||||||
executor = ProcessPoolExecutor(max_workers=worker_count)
|
executor = ProcessPoolExecutor(max_workers=worker_count)
|
||||||
except OSError:
|
except (ImportError, OSError):
|
||||||
# we arrive here if the underlying system does not support multi-processing
|
# we arrive here if the underlying system does not support multi-processing
|
||||||
# like in AWS Lambda, in which case we gracefully fallback to
|
# like in AWS Lambda or Termux, in which case we gracefully fallback to
|
||||||
# a ThreadPollExecutor with just a single worker (more workers would not do us
|
# a ThreadPollExecutor with just a single worker (more workers would not do us
|
||||||
# any good due to the Global Interpreter Lock)
|
# any good due to the Global Interpreter Lock)
|
||||||
executor = ThreadPoolExecutor(max_workers=1)
|
executor = ThreadPoolExecutor(max_workers=1)
|
||||||
|
Loading…
Reference in New Issue
Block a user