New upstream version 3.24.28
This commit is contained in:
@ -8,7 +8,7 @@
|
||||
<link rel="up" href="reference.html" title="API Reference">
|
||||
<link rel="prev" href="gdk3-Properties-and-Atoms.html" title="Properties and Atoms">
|
||||
<link rel="next" href="gdk3-Pango-Interaction.html" title="Pango Interaction">
|
||||
<meta name="generator" content="GTK-Doc V1.33.0 (XML mode)">
|
||||
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
@ -144,7 +144,7 @@ locked), but individual data structure instances are not automatically
|
||||
locked for performance reasons. So e.g. you must coordinate
|
||||
accesses to the same <span class="type">GHashTable</span> from multiple threads.</p>
|
||||
<p>GTK+, however, is not thread safe. You should only use GTK+ and GDK
|
||||
from the thread <a href="https://developer.gnome.org/gtk4/gtk4-General.html#gtk-init"><code class="function">gtk_init()</code></a> and <code class="function">gtk_main()</code> were called on.
|
||||
from the thread <code class="function">gtk_init()</code> and <code class="function">gtk_main()</code> were called on.
|
||||
This is usually referred to as the “main thread”.</p>
|
||||
<p>Signals on GTK+ and GDK types, as well as non-signal callbacks, are
|
||||
emitted in the main thread.</p>
|
||||
@ -174,7 +174,7 @@ by using <a class="link" href="gdk3-Threads.html#gdk-threads-add-idle" title="gd
|
||||
18
|
||||
19</pre></td>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="k">static</span> <span class="kt">void</span>
|
||||
<span class="nf">worker_thread</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span>
|
||||
<span class="n">worker_thread</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span>
|
||||
<span class="p">{</span>
|
||||
<span class="n">ExpensiveData</span> <span class="o">*</span><span class="n">expensive_data</span> <span class="o">=</span> <span class="n">do_expensive_computation</span> <span class="p">();</span>
|
||||
|
||||
@ -182,7 +182,7 @@ by using <a class="link" href="gdk3-Threads.html#gdk-threads-add-idle" title="gd
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="k">static</span> <span class="n">gboolean</span>
|
||||
<span class="nf">got_value</span> <span class="p">(</span><span class="n">gpointer</span> <span class="n">user_data</span><span class="p">)</span>
|
||||
<span class="n">got_value</span> <span class="p">(</span><span class="n">gpointer</span> <span class="n">user_data</span><span class="p">)</span>
|
||||
<span class="p">{</span>
|
||||
<span class="n">ExpensiveData</span> <span class="o">*</span><span class="n">expensive_data</span> <span class="o">=</span> <span class="n">user_data</span><span class="p">;</span>
|
||||
|
||||
@ -252,7 +252,7 @@ gdk_threads_init (<em class="parameter"><code><span class="type">void</span></co
|
||||
<p>Initializes GDK so that it can be used from multiple threads
|
||||
in conjunction with <a class="link" href="gdk3-Threads.html#gdk-threads-enter" title="gdk_threads_enter ()"><code class="function">gdk_threads_enter()</code></a> and <a class="link" href="gdk3-Threads.html#gdk-threads-leave" title="gdk_threads_leave ()"><code class="function">gdk_threads_leave()</code></a>.</p>
|
||||
<p>This call must be made before any use of the main loop from
|
||||
GTK+; to be safe, call it before <a href="https://developer.gnome.org/gtk4/gtk4-General.html#gtk-init"><code class="function">gtk_init()</code></a>.</p>
|
||||
GTK+; to be safe, call it before <code class="function">gtk_init()</code>.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="refsect2">
|
||||
@ -427,7 +427,7 @@ in thread B:</p>
|
||||
28
|
||||
29</pre></td>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="k">static</span> <span class="n">gboolean</span>
|
||||
<span class="nf">idle_callback</span> <span class="p">(</span><span class="n">gpointer</span> <span class="n">data</span><span class="p">)</span>
|
||||
<span class="n">idle_callback</span> <span class="p">(</span><span class="n">gpointer</span> <span class="n">data</span><span class="p">)</span>
|
||||
<span class="p">{</span>
|
||||
<span class="c1">// gdk_threads_enter(); would be needed for g_idle_add()</span>
|
||||
|
||||
@ -441,14 +441,14 @@ in thread B:</p>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="k">static</span> <span class="kt">void</span>
|
||||
<span class="nf">some_widget_do_stuff_later</span> <span class="p">(</span><span class="n">SomeWidget</span> <span class="o">*</span><span class="n">self</span><span class="p">)</span>
|
||||
<span class="n">some_widget_do_stuff_later</span> <span class="p">(</span><span class="n">SomeWidget</span> <span class="o">*</span><span class="n">self</span><span class="p">)</span>
|
||||
<span class="p">{</span>
|
||||
<span class="n">self</span><span class="o">-></span><span class="n">idle_id</span> <span class="o">=</span> <span class="n">gdk_threads_add_idle</span> <span class="p">(</span><span class="n">idle_callback</span><span class="p">,</span> <span class="n">self</span><span class="p">)</span>
|
||||
<span class="c1">// using g_idle_add() here would require thread protection in the callback</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="k">static</span> <span class="kt">void</span>
|
||||
<span class="nf">some_widget_finalize</span> <span class="p">(</span><span class="n">GObject</span> <span class="o">*</span><span class="n">object</span><span class="p">)</span>
|
||||
<span class="n">some_widget_finalize</span> <span class="p">(</span><span class="n">GObject</span> <span class="o">*</span><span class="n">object</span><span class="p">)</span>
|
||||
<span class="p">{</span>
|
||||
<span class="n">SomeWidget</span> <span class="o">*</span><span class="n">self</span> <span class="o">=</span> <span class="n">SOME_WIDGET</span> <span class="p">(</span><span class="n">object</span><span class="p">);</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="n">self</span><span class="o">-></span><span class="n">idle_id</span><span class="p">)</span>
|
||||
@ -601,7 +601,7 @@ for GTK+ widgets for the following use case:</p>
|
||||
23
|
||||
24
|
||||
25</pre></td>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="k">static</span> <span class="n">gboolean</span> <span class="nf">timeout_callback</span> <span class="p">(</span><span class="n">gpointer</span> <span class="n">data</span><span class="p">)</span>
|
||||
<td class="listing_code"><pre class="programlisting"><span class="k">static</span> <span class="n">gboolean</span> <span class="n">timeout_callback</span> <span class="p">(</span><span class="n">gpointer</span> <span class="n">data</span><span class="p">)</span>
|
||||
<span class="p">{</span>
|
||||
<span class="n">SomeWidget</span> <span class="o">*</span><span class="n">self</span> <span class="o">=</span> <span class="n">data</span><span class="p">;</span>
|
||||
|
||||
@ -612,12 +612,12 @@ for GTK+ widgets for the following use case:</p>
|
||||
<span class="k">return</span> <span class="n">G_SOURCE_REMOVE</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="k">static</span> <span class="kt">void</span> <span class="nf">some_widget_do_stuff_later</span> <span class="p">(</span><span class="n">SomeWidget</span> <span class="o">*</span><span class="n">self</span><span class="p">)</span>
|
||||
<span class="k">static</span> <span class="kt">void</span> <span class="n">some_widget_do_stuff_later</span> <span class="p">(</span><span class="n">SomeWidget</span> <span class="o">*</span><span class="n">self</span><span class="p">)</span>
|
||||
<span class="p">{</span>
|
||||
<span class="n">self</span><span class="o">-></span><span class="n">timeout_id</span> <span class="o">=</span> <span class="n">g_timeout_add</span> <span class="p">(</span><span class="n">timeout_callback</span><span class="p">,</span> <span class="n">self</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="k">static</span> <span class="kt">void</span> <span class="nf">some_widget_finalize</span> <span class="p">(</span><span class="n">GObject</span> <span class="o">*</span><span class="n">object</span><span class="p">)</span>
|
||||
<span class="k">static</span> <span class="kt">void</span> <span class="n">some_widget_finalize</span> <span class="p">(</span><span class="n">GObject</span> <span class="o">*</span><span class="n">object</span><span class="p">)</span>
|
||||
<span class="p">{</span>
|
||||
<span class="n">SomeWidget</span> <span class="o">*</span><span class="n">self</span> <span class="o">=</span> <span class="n">SOME_WIDGET</span> <span class="p">(</span><span class="n">object</span><span class="p">);</span>
|
||||
|
||||
@ -785,6 +785,6 @@ range between <span class="type">G_PRIORITY_DEFAULT_IDLE</span> and <span class=
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<hr>Generated by GTK-Doc V1.33.0</div>
|
||||
<hr>Generated by GTK-Doc V1.33.1</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user