diff options
author | Simon McVittie <smcv@collabora.com> | 2021-03-17 14:05:36 +0000 |
---|---|---|
committer | Simon McVittie <smcv@collabora.com> | 2021-03-17 14:09:24 +0000 |
commit | 6e7080d7eb71e33336bcf45f29958373a7b39c46 (patch) | |
tree | 8e2fab61d4d970adbf71226b3d0a9046e9028d85 | |
parent | bb52aeb342eee6ab70c159d8aa6af1de667d9da8 (diff) | |
download | flatpak-wip/smcv/revert-4076.tar.gz |
Revert "flatpak-utils-http: Don’t use GMainLoop"wip/smcv/revert-4076
This reverts commit c1561b1dedfbf98b2efb842ee66165421ab1422b,
which seems to trigger a hang in the
test-oci-registry@system.wrap test-case.
Signed-off-by: Simon McVittie <smcv@collabora.com>
-rw-r--r-- | common/flatpak-utils-http.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/common/flatpak-utils-http.c b/common/flatpak-utils-http.c index ffe1b476..959f531e 100644 --- a/common/flatpak-utils-http.c +++ b/common/flatpak-utils-http.c @@ -43,8 +43,7 @@ typedef struct typedef struct { - GMainContext *context; - gboolean done; + GMainLoop *loop; GError *error; gboolean store_compressed; @@ -351,8 +350,7 @@ stream_closed (GObject *source, GAsyncResult *res, gpointer user_data) g_clear_pointer (&data->out, g_object_unref); } - data->done = TRUE; - g_main_context_wakeup (data->context); + g_main_loop_quit (data->loop); } static void @@ -420,8 +418,7 @@ load_uri_callback (GObject *source_object, in = soup_request_send_finish (SOUP_REQUEST (request), res, &data->error); if (in == NULL) { - /* data->error has been set */ - g_main_context_wakeup (data->context); + g_main_loop_quit (data->loop); return; } @@ -486,7 +483,7 @@ load_uri_callback (GObject *source_object, "Server returned status %u: %s", msg->status_code, soup_status_get_phrase (msg->status_code)); - g_main_context_wakeup (data->context); + g_main_loop_quit (data->loop); return; } @@ -604,6 +601,7 @@ 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; @@ -612,7 +610,8 @@ flatpak_load_http_uri_once (SoupSession *soup_session, context = g_main_context_ref_thread_default (); - data.context = context; + loop = g_main_loop_new (context, TRUE); + data.loop = loop; data.content = content; data.progress = progress; data.cancellable = cancellable; @@ -642,8 +641,7 @@ flatpak_load_http_uri_once (SoupSession *soup_session, cancellable, load_uri_callback, &data); - while (data.error == NULL && !data.done) - g_main_context_iteration (data.context, TRUE); + g_main_loop_run (loop); if (data.error) { @@ -723,6 +721,7 @@ 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; @@ -731,7 +730,8 @@ flatpak_download_http_uri_once (SoupSession *soup_session, context = g_main_context_ref_thread_default (); - data.context = context; + loop = g_main_loop_new (context, TRUE); + data.loop = loop; data.out = out; data.progress = progress; data.cancellable = cancellable; @@ -758,8 +758,7 @@ flatpak_download_http_uri_once (SoupSession *soup_session, cancellable, load_uri_callback, &data); - while (data.error == NULL && !data.done) - g_main_context_iteration (data.context, TRUE); + g_main_loop_run (loop); if (out_bytes_written) *out_bytes_written = data.downloaded_bytes; @@ -867,6 +866,7 @@ 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,7 +914,8 @@ flatpak_cache_http_uri_once (SoupSession *soup_session, context = g_main_context_ref_thread_default (); - data.context = context; + loop = g_main_loop_new (context, TRUE); + data.loop = loop; data.cache_data = cache_data; data.out_tmpfile = &out_tmpfile; data.out_tmpfile_parent_dfd = dfd; @@ -955,8 +956,7 @@ flatpak_cache_http_uri_once (SoupSession *soup_session, cancellable, load_uri_callback, &data); - while (data.error == NULL && !data.done) - g_main_context_iteration (data.context, TRUE); + g_main_loop_run (loop); if (data.error) { |