Re: Clarification of GTK/GDK locking pre GTK 4.0
- From: Emmanuele Bassi <ebassi gmail com>
- To: Andrew Cowie <andrew operationaldynamics com>
- Cc: gtk-list gnome org
- Subject: Re: Clarification of GTK/GDK locking pre GTK 4.0
- Date: Sat, 15 Sep 2012 08:44:21 +0100
On 15 September 2012 00:39, Andrew Cowie <andrew operationaldynamics com> wrote:
> On Fri, 2012-09-14 at 11:38 +0100, Emmanuele Bassi wrote:
>> in any case, though, the deprecations refer to gdk_threads_enter() and
>> gdk_threads_leave() which, as I said above, are functions to acquire
>> and release the GDK lock from third party code.
>
> I'm confused. Is a language binding "third party code"? Or does this
> mean that the GDK lock will continue to exist and we can continue to use
> gdk_thread_enter/leave() to guard our calls to GTK functions? If so,
> that would be great!
we cannot break ABI for the duration of the 3.x series, so the
gdk_threads_enter()/leave() functions will have to exist in the GTK+
SO; given that there are applications still using them with threads,
they need to keep working to avoid regressions and applications
breaking - at least on X11, on Windows they would break anyway.
third party code using GTK+ should, though, strive to move away from a
model of taking locks and hoping for the best, and towards a model
where only one thread at a time accesses the GUI, and all other
threads schedule work through the main loop.
it's not impossible that, after a certain amount of years have
elapsed, and once we know that the biggest users of GTK+ and threads
have been migrated away from the "acquire the GDK lock in a thread"
pattern, then the GDK lock gets removed and the
gdk_threads_enter()/leave() functions will stop doing anything; if
that happens, though, there will be a further notification to
application developers. alternatively, if applications are not
migrated, we'll have to wait the next ABI/API bump to GTK+ 4.0 to
remove the GDK lock.
ciao,
Emmanuele.
--
W: http://www.emmanuelebassi.name
B: http://blogs.gnome.org/ebassi/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]