Raising the issue of multi-threading

Hi!

I'd like to raise the issue of multi-threading and the SVG-Spec. I really
think that the spec should take multi-threaded environments into strong
consideration. For example, let's take this:

var rect = document.createElementNS(.., "rect");
rect.setAttributeNS(..)
..
document.rootElement.appendChild(rect);
var theBBox = rect.getBbox();

The last line in Renesis may contain garbage at this point. Why? Because the
bbox (and other things like screen TM, client TM etc.) are calculated during
the rendering step. But because Renesis v3 does multi-threaded rendering,
you will never ever get a guarantee when those changes will make it to the
rendering. The only possible solution I could think about is to introduce
some kind of rendering feedback including cookies. Consider this:

var rect = document.createElementNS(.., "rect");
rect.setAttributeNS(..)
..
document.rootElement.appendChild(rect);
document.setRenderingCookie(123);

Now you could wait for the appropriate callback:

function renderComplete(evt, cookie)
{
  if (cookie == 123) { this is the pass we want }
}

I think, multi-threaded environments become more and more important
especially in the times of Multi-Core processors so we should give it a
strong consideration. But for now, what are we actually supposed to do in
Renesis for the previously described behaviour / issue? 

mfG / Regards,
Alexander Adam
--
Geschäftsführer / CEO
 
examotion GmbH
Ostendstraße 115
90482 Nürnberg, Germany

Fon: +49 911 - 504901-11
Fax: +49 911 - 504901-20
 
E-Mail: alexander.adam@examotion.com
Web: http://www.examotion.com
 
Geschäftsführer: Alexander Adam
Amtsgericht Nürnberg HRB Nr.: 23803
Gerichtsstandort: Nürnberg
 

--------------------------------------------------
LEGAL DISCLAIMER: The information in this email is confidential and may be
legally privileged. It is intended solely for the addressee. Access to this
email by anyone else is unauthorized. If you are not the intended recipient,
any disclosure, copying, distribution or any action taken or omitted to be
taken in reliance on it, is prohibited and may be unlawful.
--------------------------------------------------

Received on Sunday, 29 March 2009 07:35:52 UTC