Thread-safety issue in cmake support ?

Christoph Cullmann cullmann at absint.de
Sat Jun 12 05:25:20 UTC 2010


On Friday 11 June 2010 22:13:35 Milian Wolff wrote:
> Esben Mose Hansen, 11.06.2010:
> > On Friday 11 June 2010 21:41:56 Milian Wolff wrote:
> > > This I don't get. Each SmartRange or well, in future, each MovingRange
> > > must be  accessed in the MainThread since the document might get edited
> > > while getting parsed.
> > 
> > This seems like a suboptimal approach. While not simply store the ranges
> > as simple structures and instantiate the smart/moving things when the
> > document gets activated? For the currently edited document, I'd parse a
> > copy, and discard the result if the file was changed during parsing. If
> > we wanted to get smart about it, we could allow the parsing to be
> > restarted from a point (the point that was edited).
> > 
> > That neatly eliminates a whole slew of foregound locks once-and-for-all.
> > That leaves the duchain, and the include path resolution and maybe a few
> > other things.
> 
> Yes, just my and Christophs point.
Yep ;)

Btw., you even not need to restart, you can create simple ranges, like 
kdevelop's SimpleRange and later just use translate for them to translate them 
to the right positions, for that, you only need to remember the integer 
revision for which you got the text before the thread started, after parsing 
is done, create movingranges in mainthread, translate them, be done.

Greetings
Christoph

-- 
-------------------------------------- Christoph Cullmann ---------
AbsInt Angewandte Informatik GmbH      Email: cullmann at AbsInt.com
Science Park 1                         Tel:   +49-681-38360-22
66123 Saarbrücken                      Fax:   +49-681-38360-20
GERMANY                                WWW:   http://www.AbsInt.com
--------------------------------------------------------------------
Geschäftsführung: Dr.-Ing. Christian Ferdinand
Eingetragen im Handelsregister des Amtsgerichts Saarbrücken, HRB 11234




More information about the KDevelop-devel mailing list