Re: deprecating gdk threads
- From: Colin Walters <walters verbum org>
- To: Pavel Holejsovsky <pavel holejsovsky gmail com>
- Cc: gtk-devel-list gnome org
- Subject: Re: deprecating gdk threads
- Date: Mon, 06 Aug 2012 13:42:35 -0400
On Mon, 2012-08-06 at 17:08 +0200, Pavel Holejsovsky wrote:
> Basically, we define well-known ID for storing MainContext into any
> gobject's data slot (g_object_set_data). It is up to implementation
> (i.e. GTK/GDK/Clutter) to store an appropriate GMainContext instance to
> this slot, marking the object as belonging to this context.
This raises the question "what main context"? I'd suggest that GTK
should store the result of g_main_context_get_thread_default() when
gtk_init() is called.
Also, how does the object slot get set? Add it to _constructed for
each object in GTK+? And then we need to patch the bindings to check
for it?
I'm thinking a cleaner solution is to just patch gtk+ like this:
1) Capture the context at gtk_init() time
2) Patch each finalize method that calls thread-unsafe functions (e.g.
libX11) to use g_main_context_invoke (gtk_get_main_context (),
gdk_x11_cursor_real_finalize, object)
The thing to note here is that we don't need to bounce every
g_object_unref(), we just need to ensure the finalizers are run in the
default main context.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]