On Wed, 8 Jun 2011, Carsten Haitzler (The Rasterman) wrote:
> On Wed, 8 Jun 2011 07:05:01 +0200 Ulrich Eckhardt <dooms...@knuut.de> said: > > designed to be used from a single thread. in fact almost ALL of efl is not > threadsafe/re-entrant. that is .. well .. an assumed baseline, so no code > tries > to work in a threaded environment (app threadeD) except for some very specific > exceptions in eina and ecore_thread itself. If I'm not mistaken, eet too. And eio, but it's not part of the core EFL. Vincent > (the idea is you fram off the > non-efl heavy processing/io work to a worker thread and when its done it > messages back the mainloop (state machine of the app) and that state machine > updates the ui. > >> 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 >> > > > -- > ------------- Codito, ergo sum - "I code, therefore I am" -------------- > The Rasterman (Carsten Haitzler) ras...@rasterman.com > > > ------------------------------------------------------------------------------ > 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 > > ------------------------------------------------------------------------------ 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