Nur in new/: config.log. diff -aur gnome-dvb-daemon-0.1.23/src/Channel.vala new/src/Channel.vala --- gnome-dvb-daemon-0.1.23/src/Channel.vala 2011-01-14 18:06:29.000000000 +0100 +++ new/src/Channel.vala 2011-05-08 21:59:45.319041776 +0200 @@ -27,8 +27,10 @@ get { return this.sid; } set { this.sid = value; - if (this.has_schedule) + if (this.has_schedule) { this.schedule = new DVB.Schedule (this); + this.schedule.restore.begin (); + } } } public uint GroupId {get; set;} diff -aur gnome-dvb-daemon-0.1.23/src/Main.vala new/src/Main.vala --- gnome-dvb-daemon-0.1.23/src/Main.vala 2010-08-11 15:08:59.000000000 +0200 +++ new/src/Main.vala 2011-05-08 22:04:39.808009412 +0200 @@ -212,13 +212,13 @@ restore_device_groups (); - Idle.add (DVB.RTSPServer.start); + DVB.RTSPServer.start.begin (); if (!disable_mediaserver) { if (enable_mediaserver2) - Idle.add (DVB.MediaServer2.start_rygel_services); + DVB.MediaServer2.start_rygel_services.begin (); else - Idle.add (DVB.MediaServer.start_rygel_services); + DVB.MediaServer.start_rygel_services.begin (); } // Start GLib mainloop diff -aur gnome-dvb-daemon-0.1.23/src/rtsp/Server.vala new/src/rtsp/Server.vala --- gnome-dvb-daemon-0.1.23/src/rtsp/Server.vala 2011-01-14 18:12:52.000000000 +0100 +++ new/src/rtsp/Server.vala 2011-05-08 22:04:26.242816967 +0200 @@ -43,14 +43,13 @@ return address; } - public static bool start () { + public static async void start () { message ("Starting RTSP server"); server = new Gst.RTSPServer (); server.set_media_mapping (new MediaMapping ()); server.set_address (get_address ()); server.attach (null); timeout_id = GLib.Timeout.add_seconds (2, (GLib.SourceFunc)timeout); - return false; } public static void shutdown () { diff -aur gnome-dvb-daemon-0.1.23/src/rygel/Services2.vala new/src/rygel/Services2.vala --- gnome-dvb-daemon-0.1.23/src/rygel/Services2.vala 2010-08-11 11:37:06.000000000 +0200 +++ new/src/rygel/Services2.vala 2011-05-08 22:04:05.882520215 +0200 @@ -374,7 +374,7 @@ private static DeviceGroupsMediaContainer2 root_container; - public static bool start_rygel_services () { + public static async void start_rygel_services () { try { var conn = DBus.Bus.get (DBus.BusType.SESSION); @@ -395,14 +395,12 @@ root_container); } else { warning ("Rygel MediaServer D-Bus service is already running"); - return false; + return; } } catch (Error e) { critical ("Oops %s", e.message); - return false; } - return false; } } diff -aur gnome-dvb-daemon-0.1.23/src/rygel/Services.vala new/src/rygel/Services.vala --- gnome-dvb-daemon-0.1.23/src/rygel/Services.vala 2010-08-09 15:19:57.000000000 +0200 +++ new/src/rygel/Services.vala 2011-05-08 22:09:04.780179143 +0200 @@ -277,7 +277,7 @@ private static DeviceGroupsMediaContainer root_container; - public static bool start_rygel_services () { + public static async void start_rygel_services () { try { var conn = DBus.Bus.get (DBus.BusType.SESSION); @@ -298,14 +298,12 @@ root_container); } else { warning ("Rygel MediaServer D-Bus service is already running"); - return false; + return; } } catch (Error e) { critical ("Oops %s", e.message); - return false; } - return false; } } diff -aur gnome-dvb-daemon-0.1.23/src/Schedule.vala new/src/Schedule.vala --- gnome-dvb-daemon-0.1.23/src/Schedule.vala 2011-01-07 12:36:24.000000000 +0100 +++ new/src/Schedule.vala 2011-05-08 22:07:51.063383022 +0200 @@ -42,23 +42,22 @@ construct { this.events = new EventStorage (); this.epgstore = Factory.get_epg_store (); - - Idle.add (this.restore); } - private bool restore () { + public async void restore () { Gee.List levents; try { levents = this.epgstore.get_events ( this.channel.Sid, this.channel.GroupId); - } catch (SqlError e) { - critical ("%s", e.message); - return false; + } catch (SqlError e1) { + critical ("%s", e1.message); + return; } int newest_expired = -1; + Event event; for (int i=0; i