On Tue, 2007-08-14 at 14:40 -0500, Dennis J Lin wrote:
I was also thinking of getting rid of canvas->redraw_aborted altogether, and just not "cleaning" the dirty tiles until the redraw actually happens. I think that this way, we will be prepared for simultaneous dirty/redraw events. (My work so far doesn't do that yet -- it does the rendering in parallel, but blocks the main thread.)
I don't think we'll be able to unblock the main thread for the near future -- the renderer (NRArena) is poorly isolated and potentially reaches throughout all the subsystems (chiefly by way of SPStyle).
By the way -- something to keep in the back of your mind is that the NRArena* objects and buffers are managed by the boehm garbage collector. You *MUST* ensure that the threads created by TBB are created via the boehm collector's thread wrappers so that it can inspect their stacks.
-mental