]> granicus.if.org Git - handbrake/commitdiff
LinGui: make socket connect for appcast run in its own thread. prevents
authorjstebbins <jstebbins.hb@gmail.com>
Tue, 25 Nov 2008 21:41:23 +0000 (21:41 +0000)
committerjstebbins <jstebbins.hb@gmail.com>
Tue, 25 Nov 2008 21:41:23 +0000 (21:41 +0000)
long delay at startup when there are network issues.

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1954 b64f7644-9d1e-0410-96f1-a4d463321fa5

gtk/src/callbacks.c
gtk/src/callbacks.h
gtk/src/main.c

index 0b8ee4c90b3b79bf8771d40861beb7f177c30e50..5f2a55a430e2136279170f99e5090c762a966fef 100644 (file)
@@ -2699,7 +2699,7 @@ html_link_cb(GtkHTML *html, const gchar *url, signal_user_data_t *ud)
        browse_url(url);
 }
 
-static gboolean check_stable_update(signal_user_data_t *ud);
+static gpointer check_stable_update(signal_user_data_t *ud);
 static gboolean stable_update_lock = FALSE;
 
 static void
@@ -2724,7 +2724,7 @@ process_appcast(signal_user_data_t *ud)
                || ibuild <= HB_BUILD || skip == ibuild)
        {
                if (!stable_update_lock && HB_BUILD % 100)
-                       g_idle_add((GSourceFunc)check_stable_update, ud);
+                       g_thread_create((GThreadFunc)check_stable_update, ud, FALSE, NULL);
                goto done;
        }
        msg = g_strdup_printf("HandBrake %s/%s is now available (you have %s/%d).",
@@ -2842,7 +2842,7 @@ ghb_net_open(signal_user_data_t *ud, gchar *address, gint port)
        return ioc;
 }
 
-gboolean
+gpointer
 ghb_check_update(signal_user_data_t *ud)
 {
        gchar *query;
@@ -2863,16 +2863,16 @@ ghb_check_update(signal_user_data_t *ud)
        }
        ioc = ghb_net_open(ud, "handbrake.fr", 80);
        if (ioc == NULL)
-               return FALSE;
+               return NULL;
 
        g_io_channel_write_chars(ioc, query, strlen(query), &len, &gerror);
        g_io_channel_flush(ioc, &gerror);
        // This function is initiated by g_idle_add.  Must return false
        // so that it is not called again
-       return FALSE;
+       return NULL;
 }
 
-static gboolean
+static gpointer
 check_stable_update(signal_user_data_t *ud)
 {
        gchar *query;
@@ -2885,12 +2885,12 @@ check_stable_update(signal_user_data_t *ud)
        query = "GET /appcast.xml HTTP/1.0\r\nHost: handbrake.fr\r\n\r\n";
        ioc = ghb_net_open(ud, "handbrake.fr", 80);
        if (ioc == NULL)
-               return FALSE;
+               return NULL;
 
        g_io_channel_write_chars(ioc, query, strlen(query), &len, &gerror);
        g_io_channel_flush(ioc, &gerror);
        // This function is initiated by g_idle_add.  Must return false
        // so that it is not called again
-       return FALSE;
+       return NULL;
 }
 
index 7afaf9d14d95cfb7d61526ca589553831ba06966..e00e641afc5134e066636d0e0d0d12b39fb32ab2 100644 (file)
@@ -46,7 +46,7 @@ GValue* ghb_start_next_job(signal_user_data_t *ud, gboolean find_first);
 void ghb_check_dependency(signal_user_data_t *ud, GtkWidget *widget);
 void ghb_do_scan(signal_user_data_t *ud, const gchar *filename, gboolean force);
 void ghb_log(gchar *log, ...);
-gboolean ghb_check_update(signal_user_data_t *ud);
+gpointer ghb_check_update(signal_user_data_t *ud);
 
 #endif // _CALLBACKS_H_
 
index 061364b02b1a0de3a5958a8a7a9a8899c318b9f0..9f7b940d34b95f586e3c3ab6514938883141a9f6 100644 (file)
@@ -618,7 +618,7 @@ main (int argc, char *argv[])
        }
        // Reload and check status of the last saved queue
        g_idle_add((GSourceFunc)ghb_reload_queue, ud);
-       g_idle_add((GSourceFunc)ghb_check_update, ud);
+       g_thread_create((GThreadFunc)ghb_check_update, ud, FALSE, NULL);
        // Start timer for monitoring libhb status, 500ms
        g_timeout_add (500, ghb_timer_cb, (gpointer)ud);
        // Everything should be go-to-go.  Lets rock!