Changes to CodeCompletionWorker regarding multithreading

Andreas Pakulat apaku at gmx.de
Mon Jan 17 17:45:21 UTC 2011


On 17.01.11 17:19:21, David Nolden wrote:
> 2011/1/17 Milian Wolff <mail at milianw.de>:
> > David Nolden, 17.01.2011:
> >> Hi, it seems like when CodeCompletionWorker etc. were ported to
> >> kdevplatform, someone completely broke the multi-threading. The result
> >> was that for a year now, we are computing all completion items in the
> >> foreground thread (ouch).
> >
> > How come this was not noticed before?
> >
> >> I have fixed this now in kdevplatform and cpp, the other languages
> >> might need a slight adaption. In case you're overriding
> >> CodeCompletionWorker::computeCompletions, then you have to make sure
> >> to match the changed signature of the function you're overriding. The
> >> few other changes should be self-explanatory from the compiler errors.
> >>
> >> Now the question is, if we want to backport this to KDevelop 4.2. IMO
> >> the broken multi-threading was a quite serious regression which is
> >> fixed now. The problem is that we're using multi-threading now where
> >> it wasn't used before, which might expose multi-threading bugs we
> >> created within the last year, and which weren't visible without
> >> multi-threading.
> >
> > It seems this requires API changes, hence I'm not in favor of backporting this
> > now that we are in RC state.
> >
> > I know, this sucks, but I don't see any other way.
> 
> I don't think the binary compatibility is a useful metric for this
> decision, it doesn't make any sense (Unlike kdelibs, we're not a
> library). We should only worry about the stability..

Thats exactly the attitude that makes the situation stay as it is and
why the libraries in kdevplatform are still not used by any project
except kdevelop.

Apart from that, a change that has unknown side-effects in a stable
release is IMHO just a no-go. Nobody forces us to wait 6 months or more
for the next release if that is your concern. Its also not a regression,
there's been no release with multi-threaded code-completion.

And apparently for the last year or so, nobody took too much notice of
this to actually try to find out whats wrong.

Andreas

-- 
You will experience a strong urge to do good; but it will pass.




More information about the KDevelop-devel mailing list