On Sat, 2008-01-12 at 23:57 +0000, Joel Holdsworth wrote:
The reason I'm asking is because I've noticed a couple of scenarious such as PNG export, and quickly flicking between complex SVG files in the file dialogs, where the whole application locks up, in some cases for many minutes, with no way to cancel. Right now the renderer is required to run in the UI thread - even if it's a "headless" rendering such as in PNG export. That seems odd to me.
Doing those kinds of renderings in the background is good in principle, but we just don't have the infrastructure yet to do it safely.
The big issue is that the document would still be being accessed by the UI thread. You'd have to reserve that document to the rendering thread and make sure that nobody else can access it (honor system won't work), so we need infrastructure for that first (it's needed for other non-threading things anyway).
However, another major issue is that we will need to change some minor things and upgrade to libgc 7.1 before we can safely use multiple threads in that code.
-mental