data->done = TRUE;
}
-/* Synchronously request a URI - will iterate the thread-default main
- * context for historical reasons. If you don't want that, push a
- * temporary one.
- */
gboolean
_ostree_fetcher_request_uri_to_membuf (OstreeFetcher *fetcher,
SoupURI *uri,
if (g_cancellable_set_error_if_cancelled (cancellable, error))
return FALSE;
- mainctx = g_main_context_ref_thread_default ();
+ mainctx = g_main_context_new ();
+ g_main_context_push_thread_default (mainctx);
data.done = FALSE;
data.error = error;
ret = TRUE;
*out_contents = g_memory_output_stream_steal_as_bytes (buf);
out:
+ if (mainctx)
+ g_main_context_pop_thread_default (mainctx);
g_clear_object (&(data.result_stream));
return ret;
}
GMainLoop *loop;
} FetchMetalinkSyncData;
-/*
- * Note that for legacy reasons we iterate the caller's main context.
- * If you don't want that (and you probably don't) push a temporary
- * one.
- */
gboolean
_ostree_metalink_request_sync (OstreeMetalink *self,
SoupURI **out_target_uri,
if (fetching_sync_uri != NULL)
*fetching_sync_uri = _ostree_metalink_get_uri (self);
- mainctx = g_main_context_ref_thread_default ();
+ mainctx = g_main_context_new ();
+ g_main_context_push_thread_default (mainctx);
request.metalink = g_object_ref (self);
request.urls = g_ptr_array_new_with_free_func ((GDestroyNotify) soup_uri_free);
ret = TRUE;
out:
+ if (mainctx)
+ g_main_context_pop_thread_default (mainctx);
g_clear_object (&request.metalink);
g_clear_pointer (&request.urls, g_ptr_array_unref);
g_clear_pointer (&request.parser, g_markup_parse_context_free);