Nyall Dawson 7d33d327ad Use a dedicated thread pool for task manager
This avoids conflicts with Qt3D framework. As noted in
https://github.com/qgis/QGIS/issues/50067#issuecomment-1318081784
"The constructor and destructor of QChangeArbiter require the use of
**every** thread in the Qt thread pool."

This causes hangs when exporting layouts containing 3d maps. We
have threads from task manager in use from elsewhere, so the
application deadlocks waiting for every thread to be freed so
that QChangeArbiter can do its thing.

So, use a new dedicated thread pool for task manager's exclusive
use. This avoids the hang when exporting 3d maps as it avoids
the deadlock between task manager and Qt3D's requirements.

(A side benefit is that we don't get delayed map rendering when
the number of queued/running tasks hits the max thread count
from the global thread pool.)

Fixes #50067
2023-10-09 14:14:03 +10:00
..
2023-09-14 10:46:54 +03:00
2023-04-23 07:10:03 +02:00
2023-04-29 14:25:11 +02:00