> On Tue, 2010-02-16 at 15:28 +0000, Martin Pitt wrote:

> So I went and grabbed the upower code and basically none of this is
> Async.  At all.

All the properties are cached on the client side, though, so reading properties 
is usually not using D-Bus at all (except for the first time, as I said).

The suspend/hibernate calls are also sync. libupower-glib deliberately does it 
that way, since it makes the program structure so much easier, since the 
machine will just die/stop underneath you anyway, and it saves you from dealing 
with all the async handlers.

> I'm not sure what to do here.  David, do you have opinion?  I'd hate to
> rewrite the PolicyKit code, but we've made it a core architectural point
> to only use async DBus.

OK, deferring to David for the general decision.

You don't actually need to ask PolicyKit yourself, though. I added upower D-Bus 
methods {Suspend,Hibernate}Allowed() methods which return a boolean, which do 
the polkit checks.

> I doubt we could patch libupower at this point as it'd be a pretty big patch.

Might be worth discussing with Richard upstream, but I don't think he'd be 
happy about this. With my upstream hat on, I certainly wouldn't accept it, 
since it's not what libupower-glib is designed to be. The current API is meant 
to be an easy and robust integration into a glib/gobject context, and avoiding 
all unnecessary D-Bus calls. Adding a series of async D-Bus calls to it would 
make it (1) unnecessarily more complex, and (2) not provide any significant 
benefit over D-Bus directly.

So in summary, if i-s wants to use async calls only, we should keep the direct 
D-Bus interface, and need to add a call to {Suspend,Hibernate}Allowed().

Thanks!
-- 
https://code.edge.launchpad.net/~pitti/indicator-session/libupower-glib/+merge/19392
Your team ayatana-commits is subscribed to branch lp:indicator-session.

_______________________________________________
Mailing list: https://launchpad.net/~ayatana-commits
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~ayatana-commits
More help   : https://help.launchpad.net/ListHelp

Reply via email to