|
|
|
|
@ -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="n">worker_thread</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span>
|
|
|
|
|
<span class="nf">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="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="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="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>
|
|
|
|
|
|
|
|
|
|
@ -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="n">idle_callback</span> <span class="p">(</span><span class="n">gpointer</span> <span class="n">data</span><span class="p">)</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="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="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="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="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="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="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="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="n">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="nf">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="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="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="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="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="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="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>
|
|
|
|
|
|
|
|
|
|
|