bool idler() { message( "idle" ); return true; } void handleResult( DBus.Object obj, GLib.Error e ) { message( "%p", obj ); if ( e != null ) { stderr.printf( "Async Oops: %s\n", e.message ); } assert_not_reached(); } void main () { var loop = new MainLoop (null, false); //Idle.add( idler ); try { var conn = DBus.Bus.get(DBus.BusType.SYSTEM); dynamic DBus.Object obj = conn.get_object( "busname.not.present", "/foo/bar", "Interface.Not.Present" ); obj.SyncCall(); obj.AsyncCall( handleResult ); } catch (Error e) { stderr.printf ("Oops: %s\n", e.message); } }