Projects
openEuler:24.03:SP1:Everything:64G
glib2
_service:tar_scm:backport-gcontextspecificgroup...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:backport-gcontextspecificgroup-Wait-until-stop_func-is-done.patch of Package glib2
From bf7d941088b4860a93f3ea0f3202f495a9fd0667 Mon Sep 17 00:00:00 2001 From: Ondrej Holy <oholy@redhat.com> Date: Mon, 19 Feb 2024 13:38:00 +0100 Subject: [PATCH] gcontextspecificgroup: Wait until stop_func is done Currently, the `stop_func` is executed on an extra thread, and the `g_context_specific_group_remove` function returns before the `stop_func` finishes. It may happen that the `stop_func` is never executed if the program terminates soon after calling it. Let's wait until the `stop_func` is done. Fixes: https://gitlab.gnome.org/GNOME/glib/-/issues/3258 --- gio/gcontextspecificgroup.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/gio/gcontextspecificgroup.c b/gio/gcontextspecificgroup.c index e1def3bbb..41a35de86 100644 --- a/gio/gcontextspecificgroup.c +++ b/gio/gcontextspecificgroup.c @@ -153,18 +153,8 @@ g_context_specific_group_request_state (GContextSpecificGroup *group, } } - /* we only block for positive transitions */ - if (requested_state) - { - while (group->requested_state != group->effective_state) - g_cond_wait (&group->cond, &group->lock); - - /* there is no way this could go back to FALSE because the object - * that we just created in this thread would have to have been - * destroyed again (from this thread) before that could happen. - */ - g_assert (group->effective_state); - } + while (group->requested_state != group->effective_state) + g_cond_wait (&group->cond, &group->lock); } gpointer -- 2.27.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2