Re: Clarification of GTK/GDK locking pre GTK 4.0



>  the API reference page on GDK and threads says:
>  
>  """

> [ .. ] 

Several problems with that:

1) Not every person reached this page. For example, the developer of
oxygen didn't, and didn't known aboyr gdk_threads_add_timeout until I
told him about it (https://bugs.kde.org/show_bug.cgi?id=306671). There
should be something that points developers to it, becuase this happens
repeatedly. 

2) There are various discussions and commits talking about gdk
threading deperacated, and as you can see from the bug above, people
interpret to mean that they should not use GDK threading functions,
even in GTK 2 and GTK 3. There should be a document that says what you
said, that they need to be used before GTK4, in a place that developers
know that they need to read. 

3) The problem in (2) is made worse by the fact that the new
documentation in 3.6 actually tell people to use g_idle_add. For
example, in this commit:

   https://mail.gnome.org/archives/commits-list/2012-July/msg07237.html

There is apparently new comment for GDK_THREAD_ENTER saying:


+ * Deprecated:3.6: Use g_main_context_invoke(), g_idle_add() and related
+ *     functions if you need to schedule GTK+ calls from other threads.

That is true only for code that does not need to work with GTK 2 and
GTK 3. In GTK 2 and GTK 3 you need to use gdk_threads_add_idle and
friends (which will also work in GTK 4), but there is no way to work
this out from this comment.

Instead, this comment should be:

  Deprecated:3.6: see <this page> 

and <this page> is a guidelines page, containing more or less what you
wrote in your first reply.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]