[KDev3.4] BlockingKProcess should be fixed.

Andras Mantia amantia at kde.org
Sun Apr 22 20:19:35 UTC 2007


On Sunday 22 April 2007, dukju ahn wrote:
> 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??

BlockingKProcess uses the very same method as NetAccess (the idea was 
copied from there). The question is *how* can synchronousRun be called 
while the BlockingKProcess runs a second event loop. This is the 
problem that should be solved, as otherwise running 
KIO::NetAccess::stat (for example) instead of a BlockingKProcess 
doesn't really make a difference.

Andras


-- 
Quanta Plus developer - http://quanta.kdewebdev.org
K Desktop Environment - http://www.kde.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20070422/1a841e58/attachment.sig>


More information about the KDevelop-devel mailing list