ocaml-containers/3.10/containers-thread/CCBlockingQueue/index.html
Simon Cruanes fc810ce03e
add 3.10
2022-11-16 13:25:28 -05:00

2 lines
No EOL
6.5 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CCBlockingQueue (containers-thread.CCBlockingQueue)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">containers-thread</a> &#x00BB; CCBlockingQueue</nav><header class="odoc-preamble"><h1>Module <code><span>CCBlockingQueue</span></code></h1></header><nav class="odoc-toc"><ul><li><a href="#blocking-queue">Blocking Queue</a></li></ul></nav><div class="odoc-content"><h2 id="blocking-queue"><a href="#blocking-queue" class="anchor"></a>Blocking Queue</h2><p>This queue has a limited size. Pushing a value on the queue when it is full will block.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.16</li></ul><div class="odoc-spec"><div class="spec type" id="type-t" class="anchored"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a t</span></span></code></div><div class="spec-doc"><p>Safe-thread queue for values of type <code>'a</code></p></div></div><div class="odoc-spec"><div class="spec value" id="val-create" class="anchored"><a href="#val-create" class="anchor"></a><code><span><span class="keyword">val</span> create : <span>int <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Create a new queue of size <code>n</code>. Using <code>n=max_int</code> amounts to using an infinite queue (2^61 items is a lot to fit in memory); using <code>n=1</code> amounts to using a box with 0 or 1 elements inside.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if <code>n &lt; 1</code>.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-push" class="anchored"><a href="#val-push" class="anchor"></a><code><span><span class="keyword">val</span> push : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>push q x</code> pushes <code>x</code> into <code>q</code>, blocking if the queue is full.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-take" class="anchored"><a href="#val-take" class="anchor"></a><code><span><span class="keyword">val</span> take : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p>Take the first element, blocking if needed.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-push_list" class="anchored"><a href="#val-push_list" class="anchor"></a><code><span><span class="keyword">val</span> push_list : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> list</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Push items of the list, one by one.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-take_list" class="anchored"><a href="#val-take_list" class="anchor"></a><code><span><span class="keyword">val</span> take_list : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> list</span></span></code></div><div class="spec-doc"><p><code>take_list n q</code> takes <code>n</code> elements out of <code>q</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-try_take" class="anchored"><a href="#val-try_take" class="anchor"></a><code><span><span class="keyword">val</span> try_take : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> option</span></span></code></div><div class="spec-doc"><p>Take the first element if the queue is not empty, return <code>None</code> otherwise.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-try_push" class="anchored"><a href="#val-try_push" class="anchor"></a><code><span><span class="keyword">val</span> try_push : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p><code>try_push q x</code> pushes <code>x</code> into <code>q</code> if <code>q</code> is not full, in which case it returns <code>true</code>. If it fails because <code>q</code> is full, it returns <code>false</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-peek" class="anchored"><a href="#val-peek" class="anchor"></a><code><span><span class="keyword">val</span> peek : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> option</span></span></code></div><div class="spec-doc"><p><code>peek q</code> returns <code>Some x</code> if <code>x</code> is the first element of <code>q</code>, otherwise it returns <code>None</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-size" class="anchored"><a href="#val-size" class="anchor"></a><code><span><span class="keyword">val</span> size : <span><span><span class="type-var">_</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> int</span></code></div><div class="spec-doc"><p>Number of elements currently in the queue.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-capacity" class="anchored"><a href="#val-capacity" class="anchor"></a><code><span><span class="keyword">val</span> capacity : <span><span><span class="type-var">_</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> int</span></code></div><div class="spec-doc"><p>Number of values the queue can hold.</p></div></div></div></body></html>