Skip to content

Commit 89f1640

Browse files
mash-grazwonder-sk
authored andcommittedDec 6, 2019
successive ThreadPoolExecutors for all zoom levels
instead of using only one ThreadPoolExecutor for all MetaTiles, its now handled in a loop and new ThreadPools for the next zoom level will be started when all work for the previous one is already done. i guess, this will fix the issues and interferences described in #32471 and shouldn't be much slower.
1 parent d969e41 commit 89f1640

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed
 

‎python/plugins/processing/algs/qgis/TilesXYZ.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -305,9 +305,10 @@ def generate(self, writer, parameters, context, feedback):
305305
self.progressThreadLock = threading.Lock()
306306
if self.maxThreads > 1:
307307
feedback.pushConsoleInfo(self.tr('Using {max_threads} CPU Threads:').format(max_threads=self.maxThreads))
308-
feedback.pushConsoleInfo(self.tr('Pushing all tiles at once: {meta_count} tiles.').format(meta_count=len(allMetatiles)))
309-
with ThreadPoolExecutor(max_workers=self.maxThreads) as threadPool:
310-
threadPool.map(self.renderSingleMetatile, allMetatiles)
308+
for zoom in range(self.min_zoom, self.max_zoom + 1):
309+
feedback.pushConsoleInfo(self.tr('Generating tiles for zoom level: {zoom}').format(zoom=zoom))
310+
with ThreadPoolExecutor(max_workers=self.maxThreads) as threadPool:
311+
threadPool.map(self.renderSingleMetatile, metatiles_by_zoom[zoom])
311312
else:
312313
feedback.pushConsoleInfo(self.tr('Using 1 CPU Thread:'))
313314
for zoom in range(self.min_zoom, self.max_zoom + 1):

0 commit comments

Comments
 (0)
Please sign in to comment.