mirror of
https://github.com/flatpak/flatpak.git
synced 2026-02-27 20:26:19 -05:00
Merge pull request #4076 from pwithnall/no-main-loops
flatpak-utils-http: Don’t use GMainLoop
This commit is contained in:
@@ -43,7 +43,8 @@ typedef struct
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GMainLoop *loop;
|
||||
GMainContext *context;
|
||||
gboolean done;
|
||||
GError *error;
|
||||
gboolean store_compressed;
|
||||
|
||||
@@ -350,7 +351,8 @@ stream_closed (GObject *source, GAsyncResult *res, gpointer user_data)
|
||||
g_clear_pointer (&data->out, g_object_unref);
|
||||
}
|
||||
|
||||
g_main_loop_quit (data->loop);
|
||||
data->done = TRUE;
|
||||
g_main_context_wakeup (data->context);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -418,7 +420,8 @@ load_uri_callback (GObject *source_object,
|
||||
in = soup_request_send_finish (SOUP_REQUEST (request), res, &data->error);
|
||||
if (in == NULL)
|
||||
{
|
||||
g_main_loop_quit (data->loop);
|
||||
/* data->error has been set */
|
||||
g_main_context_wakeup (data->context);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -483,7 +486,7 @@ load_uri_callback (GObject *source_object,
|
||||
"Server returned status %u: %s",
|
||||
msg->status_code,
|
||||
soup_status_get_phrase (msg->status_code));
|
||||
g_main_loop_quit (data->loop);
|
||||
g_main_context_wakeup (data->context);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -601,7 +604,6 @@ flatpak_load_http_uri_once (SoupSession *soup_session,
|
||||
GBytes *bytes = NULL;
|
||||
g_autoptr(GMainContext) context = NULL;
|
||||
g_autoptr(SoupRequestHTTP) request = NULL;
|
||||
g_autoptr(GMainLoop) loop = NULL;
|
||||
g_autoptr(GString) content = g_string_new ("");
|
||||
LoadUriData data = { NULL };
|
||||
SoupMessage *m;
|
||||
@@ -610,8 +612,7 @@ flatpak_load_http_uri_once (SoupSession *soup_session,
|
||||
|
||||
context = g_main_context_ref_thread_default ();
|
||||
|
||||
loop = g_main_loop_new (context, TRUE);
|
||||
data.loop = loop;
|
||||
data.context = context;
|
||||
data.content = content;
|
||||
data.progress = progress;
|
||||
data.cancellable = cancellable;
|
||||
@@ -641,7 +642,8 @@ flatpak_load_http_uri_once (SoupSession *soup_session,
|
||||
cancellable,
|
||||
load_uri_callback, &data);
|
||||
|
||||
g_main_loop_run (loop);
|
||||
while (data.error == NULL && !data.done)
|
||||
g_main_context_iteration (data.context, TRUE);
|
||||
|
||||
if (data.error)
|
||||
{
|
||||
@@ -721,7 +723,6 @@ flatpak_download_http_uri_once (SoupSession *soup_session,
|
||||
GError **error)
|
||||
{
|
||||
g_autoptr(SoupRequestHTTP) request = NULL;
|
||||
g_autoptr(GMainLoop) loop = NULL;
|
||||
g_autoptr(GMainContext) context = NULL;
|
||||
LoadUriData data = { NULL };
|
||||
SoupMessage *m;
|
||||
@@ -730,8 +731,7 @@ flatpak_download_http_uri_once (SoupSession *soup_session,
|
||||
|
||||
context = g_main_context_ref_thread_default ();
|
||||
|
||||
loop = g_main_loop_new (context, TRUE);
|
||||
data.loop = loop;
|
||||
data.context = context;
|
||||
data.out = out;
|
||||
data.progress = progress;
|
||||
data.cancellable = cancellable;
|
||||
@@ -758,7 +758,8 @@ flatpak_download_http_uri_once (SoupSession *soup_session,
|
||||
cancellable,
|
||||
load_uri_callback, &data);
|
||||
|
||||
g_main_loop_run (loop);
|
||||
while (data.error == NULL && !data.done)
|
||||
g_main_context_iteration (data.context, TRUE);
|
||||
|
||||
if (out_bytes_written)
|
||||
*out_bytes_written = data.downloaded_bytes;
|
||||
@@ -866,7 +867,6 @@ flatpak_cache_http_uri_once (SoupSession *soup_session,
|
||||
GError **error)
|
||||
{
|
||||
g_autoptr(SoupRequestHTTP) request = NULL;
|
||||
g_autoptr(GMainLoop) loop = NULL;
|
||||
g_autoptr(GMainContext) context = NULL;
|
||||
g_autoptr(CacheHttpData) cache_data = NULL;
|
||||
g_autofree char *parent_path = g_path_get_dirname (dest_subpath);
|
||||
@@ -914,8 +914,7 @@ flatpak_cache_http_uri_once (SoupSession *soup_session,
|
||||
|
||||
context = g_main_context_ref_thread_default ();
|
||||
|
||||
loop = g_main_loop_new (context, TRUE);
|
||||
data.loop = loop;
|
||||
data.context = context;
|
||||
data.cache_data = cache_data;
|
||||
data.out_tmpfile = &out_tmpfile;
|
||||
data.out_tmpfile_parent_dfd = dfd;
|
||||
@@ -956,7 +955,8 @@ flatpak_cache_http_uri_once (SoupSession *soup_session,
|
||||
cancellable,
|
||||
load_uri_callback, &data);
|
||||
|
||||
g_main_loop_run (loop);
|
||||
while (data.error == NULL && !data.done)
|
||||
g_main_context_iteration (data.context, TRUE);
|
||||
|
||||
if (data.error)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user