mirror of
https://github.com/c-cube/linol.git
synced 2025-12-07 11:45:43 -05:00
2 lines
4.6 KiB
HTML
2 lines
4.6 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Lwt_mvar (lwt.Lwt_mvar)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.2"/><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">lwt</a> » Lwt_mvar</nav><header class="odoc-preamble"><h1>Module <code><span>Lwt_mvar</span></code></h1><p>Mailbox variables</p></header><div class="odoc-content"><p>“Mailbox” variables implement a synchronising variable, used for communication between concurrent threads.</p><div class="odoc-spec"><div class="spec type anchored" id="type-t"><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>The type of a mailbox variable. Mailbox variables are used to communicate values between threads in a synchronous way. The type parameter specifies the type of the value propagated from <code>put</code> to <code>take</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-create"><a href="#val-create" class="anchor"></a><code><span><span class="keyword">val</span> create : <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>create v</code> creates a new mailbox variable containing value <code>v</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-create_empty"><a href="#val-create_empty" class="anchor"></a><code><span><span class="keyword">val</span> create_empty : <span>unit <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>create ()</code> creates a new empty mailbox variable.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-put"><a href="#val-put" class="anchor"></a><code><span><span class="keyword">val</span> put : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span>unit <a href="../Lwt/index.html#type-t">Lwt.t</a></span></span></code></div><div class="spec-doc"><p><code>put mvar value</code> puts a value into a mailbox variable. This value will remain in the mailbox until <code>take</code> is called to remove it. If the mailbox is not empty, the current thread will block until it is emptied.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-take"><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">-></span></span> <span><span class="type-var">'a</span> <a href="../Lwt/index.html#type-t">Lwt.t</a></span></span></code></div><div class="spec-doc"><p><code>take mvar</code> will take any currently available value from the mailbox variable. If no value is currently available, the current thread will block, awaiting a value to be <code>put</code> by another thread.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-take_available"><a href="#val-take_available" class="anchor"></a><code><span><span class="keyword">val</span> take_available : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> option</span></span></code></div><div class="spec-doc"><p><code>take_available mvar</code> immediately takes the value from <code>mvar</code> without blocking, returning <code>None</code> if the mailbox is empty.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.2.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_empty"><a href="#val-is_empty" class="anchor"></a><code><span><span class="keyword">val</span> is_empty : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_empty mvar</code> indicates if <code>put mvar</code> can be called without blocking.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.2.0</li></ul></div></div></div></body></html>
|