[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: nasty DCOPServer bug
From: Matthias Elter <elter () trolltech ! com>
Date: 2001-03-02 14:20:54
[Download RAW message or body]
Hi
I think you all know what happens when a dcop client calls DCOPClient::call()
while it already is in a call. The client freezes. This happened some time
ago with kicker applets and other code.
The DCOPClient blocks the GUI while in a call to make sure no GUI event can
trigger a new call before the first one returns. Furthermore Matthias Ettrich
implemented a nice system to postpone incomming DCOP events (like sends)
while the client is in a call to fix the problems we experienced with kicker
applets.
Now I experienced applications hanging in DCOP calls again this week. The
reason for the calls _again_ were clients entering calls while already
calling. The client I used to debug this received a DCOP signal which
triggered a call while it was supposed to block for another call.
The reason for the new bug is that whoever implemented DCOP signals did not
make sure that all sends that are triggered by a signal use the magic message
key for sends which prevents clients from accepting signals while blocking
for a call.
I have commited a fix which should fix quite a bunch of hardly reproduceable
freezes people experienced recently.
Matthias
P.S.: There is still one situation when a call can be triggered while the
client already waits for a call to return, timer events. Try to avoid DCOP
calls triggered by timer events. A timer may trigger a call while the client
is already in a call.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic