Tracking whether a connection is alive

David Zeuthen david at fubar.dk
Sun Jul 11 15:54:16 PDT 2004


On Sun, 2004-07-11 at 23:46 +0100, Mike Hearn wrote:
> On Mon, 12 Jul 2004 00:20:38 +0200, David Zeuthen wrote:
> > What if an application locks up? I've tried that with K3B actually. I
> > guess what I'm asking for is that the system message bus pings all
> > connections regularly, like, say every five seconds or so.
> 
> We definitely don't want that, it would slaughter performance by keeping
> parts of all programs connected to the bus paged in (stack, code pages,
> etc).
> 

Right. That's a very good point.

> You can already send org.freedesktop.Peer.Ping if locking up is a problem
> you wish to solve. Remember: In the case of an application has that GUI
> locking up, the user will eventually try and close it when they realise
> it's not responding at which point the WM will ping it and then force quit
> it.
> 
> What I'd suggest is that while a peer has a device locked HAL sends Ping
> messages to that service every few seconds until it's unlocked. One
> downside is that by requiring this I guess you make it harder to write
> clients because if the task you're doing isn't easily interruptable (is CD
> writing? I guess it must be ....) you need threading and such to respond
> to pings.
> 

OK, any reasonable CD writer application probably has a thread to update
the UI anyway, so this seems like an acceptable thing to do.

> Still it is probably the best course of action. Ping while a lock is held,
> don't ping while it's not.
> 

Yeah, sounds like a plan.

Thanks,
David



More information about the dbus mailing list