[KDev3.4] BlockingKProcess should be fixed.

dukju ahn dukjuahn at gmail.com
Sun Apr 22 19:44:32 UTC 2007


Hi.

As in my recent posts named "SVNFileInfoProvider::status",
BlockingKProcess and KIO::NetAccess::synchronousRun()
conflicts each other. This conflict happens because each class
use the same qApp->enter_loop(), exit_loop().

1. Reasons of conflict.

When CppSupportPart opens it runs BlockingKProc::enter_loop()
And the stackframe piles over that. At some point, synchronousRun()
is called on top of the stackframe.
synchronousRun() also calls enter_loop(), and the looplevel
becomes three.

At this point child process of BlockingProc finishes and exit_loop()
is called by the slot. This exit_loop() causes synchronousRun()
return, and the BlockingProc has no way but to wait timeout.

2. Suggestions.

It would be good if the blocking mechanism can be implemented
by different method. But if this is hard, the BlockingKProc's timeout
should be more short, because BKProc should wait 60 seconds
to exit the loop, when NetAccess::syncRun() and BKProc conflicts,

The timeout can be lowered by 3~4 seconds, since the processes
used by KDev is simple ones like "gcc -v nullfile.cpp"

Any opinions??




More information about the KDevelop-devel mailing list