Skip to content

Commit 51718ec

Browse files
committed
don't use export thread pool if concurrency == 1
1 parent 4803678 commit 51718ec

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

prime_backup/action/export_backup_action_directory.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import contextlib
12
import dataclasses
23
import logging
34
import os
@@ -289,7 +290,12 @@ def add_export_item(file_: schema.File, export_path: Path):
289290
ts_bcg = ThreadSafeBlobChunksGetter(session)
290291
directories: 'queue.Queue[Tuple[schema.File, Path]]' = queue.Queue()
291292
progress = SizeProgressReporter('Backup file export', total_count=len(export_items), total_size=sum(item.file.blob_raw_size or 0 for item in export_items))
292-
with FailFastBlockingThreadPool('export') as pool:
293+
294+
with contextlib.ExitStack() as es:
295+
pool: Optional[FailFastBlockingThreadPool] = None
296+
if self.config.get_effective_concurrency() > 1:
297+
pool = es.enter_context(FailFastBlockingThreadPool('export'))
298+
293299
def export_worker(item_: ExportBackupToDirectoryAction._ExportItem):
294300
with failures.handling_exception(item_.file):
295301
try:
@@ -300,7 +306,10 @@ def export_worker(item_: ExportBackupToDirectoryAction._ExportItem):
300306
progress.on_one_file_done(item_.file)
301307

302308
for item in export_items:
303-
pool.submit(export_worker, item)
309+
if pool is not None:
310+
pool.submit(export_worker, item)
311+
else:
312+
export_worker(item)
304313

305314
# restore retained files before setting directory attrs
306315
if export_temp_dir.retainer is not None:

0 commit comments

Comments
 (0)