mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-09 12:25:48 +01:00
gmain: Signal wakeups if context has never been acquired as well
Should address backwards compatibility with how qemu is using `GMainContext`. See https://bugzilla.gnome.org/show_bug.cgi?id=761102#c14 Input-into-keyboard-by: Colin Walters <walters@verbum.org>
This commit is contained in:
parent
3d7534eae5
commit
0c0469b56d
12
glib/gmain.c
12
glib/gmain.c
@ -1127,7 +1127,17 @@ source_remove_from_context (GSource *source,
|
|||||||
static void
|
static void
|
||||||
conditional_wakeup (GMainContext *context)
|
conditional_wakeup (GMainContext *context)
|
||||||
{
|
{
|
||||||
if (context->owner && context->owner != G_THREAD_SELF)
|
/* We want to signal wakeups in two cases:
|
||||||
|
* 1 When the context is owned by another thread
|
||||||
|
* 2 When the context owner is NULL (two subcases)
|
||||||
|
* 2a Possible if the context has never been acquired
|
||||||
|
* 2b Or if the context has no current owner
|
||||||
|
*
|
||||||
|
* At least case 2a) is necessary to ensure backwards compatibility with
|
||||||
|
* qemu's use of GMainContext.
|
||||||
|
* https://bugzilla.gnome.org/show_bug.cgi?id=761102#c14
|
||||||
|
*/
|
||||||
|
if (context->owner != G_THREAD_SELF)
|
||||||
g_wakeup_signal (context->wakeup);
|
g_wakeup_signal (context->wakeup);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user