Hi!

I have a question regarding the thread-safety and reentrancy of Evas. Firstly, 
are these actually goals or is Evas intended by design to be used in a single 
thread for rendering? If so, you can ignore my other questions....

Now, what got me started on this issue is the commit in 
http://trac.enlightenment.org/e/changeset/59780/trunk/evas/src. There, a 
function-local, static buffer is added in _escaped_char_get(), who's address 
is returned from the function. This means that one call will overwrite the 
previous call's results and simultaneous calls by two threads might cause even 
more problems.

I checked the rest of the file (Actually, I think that is the biggest single 
file of sourcecode I have ever seen with almost 9k lines! :D) but there is 
only a single further incident where a non-const, local and static variable is 
used. This second use is in the initialisation of textblock objects where 
linebreak_init() is called on demand when HAVE_LINEBREAK is defined. Isn't 
this latter case something for evas_init(), BTW?

Cheers!

Uli

------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to