KatePart in 4.5 and multi threading

Hamish Rodda rodda at kde.org
Sat Apr 10 08:39:32 UTC 2010


On Sat, 10 Apr 2010 07:10:38 am Milian Wolff wrote:
> @ KDevelopers
> 
> Before I'm off into the weekend, please everybody read and participate in
>  this:
> 
> http://lists.kde.org/?l=kwrite-devel&m=127084516202273&w=2
> 
> http://lists.kde.org/?l=kwrite-devel&m=127084406600748&w=2
> 
> I'm lost and don't know what to do. All I know is that KDevelop is more or
> less unusable with Kate from trunk.

Well, while Christoph may feel that katepart was never designed to be thread 
safe, I certainly intended it to be, through the use of the smart lock.  There 
was no "working by chance" here, it was long hours of myself and David fixing 
corner cases.

The way it used to work is that the document takes the lock whenever it needs 
to make a change to the buffer, the view takes the lock whenever it needs to 
draw, and the 3rd party app takes the lock whenever it needs to read or write.

The buffer didn't ever have to be thread safe, because it was protected by the 
smart lock.

So, my _guess_ is that probably there is a small, easily rectifiable problem 
with the smart lock now; don't worry, we just need to make the right fix, not 
fork kate.

Last I looked (which was a while back) the issue with the smart groups "not 
working" is a very difficult to reproduce corner case, I never managed to 
trigger and thus fix.

However, I do take issue with the "qt creator does it this way and is fine" 
argument, it would take a sizeable effort to convert kdevelop, and lose us the 
ability to do re-parsing of text, every change would probably lead to the 
duchain for that document being thrown out and re-written.

So, let's work together to fix the bug... I don't have a development 
environment at the moment but I'll see what I can do.

Cheers,
Hamish.




More information about the KDevelop-devel mailing list