summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@collabora.com>2021-03-17 14:05:36 +0000
committerSimon McVittie <smcv@collabora.com>2021-03-17 14:09:24 +0000
commit6e7080d7eb71e33336bcf45f29958373a7b39c46 (patch)
tree8e2fab61d4d970adbf71226b3d0a9046e9028d85
parentbb52aeb342eee6ab70c159d8aa6af1de667d9da8 (diff)
downloadflatpak-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.c32
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)
{