⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 glib-asynchronous-queues.html

📁 glid编写实例
💻 HTML
📖 第 1 页 / 共 3 页
字号:
</table></div></div><hr><div class="refsect2" lang="en"><a name="id2894878"></a><h3><a name="g-async-queue-push"></a>g_async_queue_push ()</h3><a class="indexterm" name="id2894890"></a><pre class="programlisting">void        g_async_queue_push              (<a href="glib-Asynchronous-Queues.html#GAsyncQueue">GAsyncQueue</a> *queue,                                             <a href="glib-Basic-Types.html#gpointer">gpointer</a> data);</pre><p>Pushes the <em class="parameter"><code>data</code></em> into the <em class="parameter"><code>queue</code></em>. <em class="parameter"><code>data</code></em> must not be <code class="literal">NULL</code>.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><em class="parameter"><code>queue</code></em>&#160;:</span></td><td> a <a href="glib-Asynchronous-Queues.html#GAsyncQueue"><span class="type">GAsyncQueue</span></a>.</td></tr><tr><td><span class="term"><em class="parameter"><code>data</code></em>&#160;:</span></td><td> <em class="parameter"><code>data</code></em> to push into the <em class="parameter"><code>queue</code></em>.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2895001"></a><h3><a name="g-async-queue-pop"></a>g_async_queue_pop ()</h3><a class="indexterm" name="id2895012"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gpointer">gpointer</a>    g_async_queue_pop               (<a href="glib-Asynchronous-Queues.html#GAsyncQueue">GAsyncQueue</a> *queue);</pre><p>Pops data from the <em class="parameter"><code>queue</code></em>. This function blocks until data becomeavailable.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><em class="parameter"><code>queue</code></em>&#160;:</span></td><td> a <a href="glib-Asynchronous-Queues.html#GAsyncQueue"><span class="type">GAsyncQueue</span></a>.</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td><td> data from the queue.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2895084"></a><h3><a name="g-async-queue-try-pop"></a>g_async_queue_try_pop ()</h3><a class="indexterm" name="id2895095"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gpointer">gpointer</a>    g_async_queue_try_pop           (<a href="glib-Asynchronous-Queues.html#GAsyncQueue">GAsyncQueue</a> *queue);</pre><p>Tries to pop data from the <em class="parameter"><code>queue</code></em>. If no data is available, <code class="literal">NULL</code> isreturned.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><em class="parameter"><code>queue</code></em>&#160;:</span></td><td> a <a href="glib-Asynchronous-Queues.html#GAsyncQueue"><span class="type">GAsyncQueue</span></a>.</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td><td> data from the queue or <code class="literal">NULL</code>, when no data isavailable immediately.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2895180"></a><h3><a name="g-async-queue-timed-pop"></a>g_async_queue_timed_pop ()</h3><a class="indexterm" name="id2895191"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gpointer">gpointer</a>    g_async_queue_timed_pop         (<a href="glib-Asynchronous-Queues.html#GAsyncQueue">GAsyncQueue</a> *queue,                                             <a href="glib-Date-and-Time-Functions.html#GTimeVal">GTimeVal</a> *end_time);</pre><p>Pops data from the <em class="parameter"><code>queue</code></em>. If no data is received before <em class="parameter"><code>end_time</code></em>,<code class="literal">NULL</code> is returned.</p><p>To easily calculate <em class="parameter"><code>end_time</code></em> a combination of <a href="glib-Date-and-Time-Functions.html#g-get-current-time"><code class="function">g_get_current_time()</code></a>and <a href="glib-Date-and-Time-Functions.html#g-time-val-add"><code class="function">g_time_val_add()</code></a> can be used.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><em class="parameter"><code>queue</code></em>&#160;:</span></td><td> a <a href="glib-Asynchronous-Queues.html#GAsyncQueue"><span class="type">GAsyncQueue</span></a>.</td></tr><tr><td><span class="term"><em class="parameter"><code>end_time</code></em>&#160;:</span></td><td> a <a href="glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a>, determining the final time.</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td><td> data from the queue or <code class="literal">NULL</code>, when no data isreceived before <em class="parameter"><code>end_time</code></em>.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2895349"></a><h3><a name="g-async-queue-length"></a>g_async_queue_length ()</h3><a class="indexterm" name="id2895360"></a><pre class="programlisting"><a href="glib-Basic-Types.html#gint">gint</a>        g_async_queue_length            (<a href="glib-Asynchronous-Queues.html#GAsyncQueue">GAsyncQueue</a> *queue);</pre><p>Returns the length of the queue, negative values mean waitingthreads, positive values mean available entries in the<em class="parameter"><code>queue</code></em>. Actually this function returns the number of data items inthe queue minus the number of waiting threads. Thus a return valueof 0 could mean 'n' entries in the queue and 'n' thread waiting.That can happen due to locking of the queue or due toscheduling.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><em class="parameter"><code>queue</code></em>&#160;:</span></td><td> a <a href="glib-Asynchronous-Queues.html#GAsyncQueue"><span class="type">GAsyncQueue</span></a>.</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td><td> the length of the <em class="parameter"><code>queue</code></em>.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2895443"></a><h3><a name="g-async-queue-lock"></a>g_async_queue_lock ()</h3><a class="indexterm" name="id2895454"></a><pre class="programlisting">void        g_async_queue_lock              (<a href="glib-Asynchronous-Queues.html#GAsyncQueue">GAsyncQueue</a> *queue);</pre><p>Acquires the <em class="parameter"><code>queue</code></em>'s lock. After that you can only call the<code class="function">g_async_queue_*<code class="function">_unlocked()</code></code> function variants on that<em class="parameter"><code>queue</code></em>. Otherwise it will deadlock.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><em class="parameter"><code>queue</code></em>&#160;:</span></td><td> a <a href="glib-Asynchronous-Queues.html#GAsyncQueue"><span class="type">GAsyncQueue</span></a>.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2895538"></a><h3><a name="g-async-queue-unlock"></a>g_async_queue_unlock ()</h3><a class="indexterm" name="id2895548"></a><pre class="programlisting">void        g_async_queue_unlock            (<a href="glib-Asynchronous-Queues.html#GAsyncQueue">GAsyncQueue</a> *queue);</pre><p>Releases the queue's lock.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><em class="parameter"><code>queue</code></em>&#160;:</span></td><td> a <a href="glib-Asynchronous-Queues.html#GAsyncQueue"><span class="type">GAsyncQueue</span></a>.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2895603"></a><h3><a name="g-async-queue-ref-unlocked"></a>g_async_queue_ref_unlocked ()</h3><a class="indexterm" name="id2895615"></a><pre class="programlisting">void        g_async_queue_ref_unlocked      (<a href="glib-Asynchronous-Queues.html#GAsyncQueue">GAsyncQueue</a> *queue);</pre><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p><code class="literal">g_async_queue_ref_unlocked</code> is deprecated and should not be used in newly-written code.</p></div><p>Increases the reference count of the asynchronous <em class="parameter"><code>queue</code></em> by 1.</p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -