This file is indexed.

/usr/share/doc/libghc-stm-chans-doc/html/Control-Concurrent-STM-TMQueue.html is in libghc-stm-chans-doc 3.0.0.4-5.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Control.Concurrent.STM.TMQueue</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="file:///usr/share/javascript/mathjax/MathJax.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Control-Concurrent-STM-TMQueue.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Concurrent-STM-TMQueue.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">stm-chans-3.0.0.4: Additional types of channels for STM.</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Copyright</th><td>Copyright (c) 2011--2015 wren gayle romano</td></tr><tr><th>License</th><td>BSD</td></tr><tr><th>Maintainer</th><td>wren@community.haskell.org</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Portability</th><td>non-portable (GHC STM, DeriveDataTypeable)</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Control.Concurrent.STM.TMQueue</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">The TMQueue type</a><ul><li><a href="#g:2">Creating TMQueues</a></li><li><a href="#g:3">Reading from TMQueues</a></li><li><a href="#g:4">Writing to TMQueues</a></li><li><a href="#g:5">Closing TMQueues</a></li><li><a href="#g:6">Predicates</a></li></ul></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A version of <a href="file:///usr/share/doc/libghc-stm-doc/html/Control-Concurrent-STM-TQueue.html">Control.Concurrent.STM.TQueue</a> where the queue is
 closeable. This is similar to a <code>TQueue (Maybe a)</code> with a
 monotonicity guarantee that once there's a <code>Nothing</code> there will
 always be <code>Nothing</code>.</p><p><em>Since: 2.0.0</em></p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:TMQueue">TMQueue</a> a</li><li class="src short"><a href="#v:newTMQueue">newTMQueue</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> (<a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a)</li><li class="src short"><a href="#v:newTMQueueIO">newTMQueueIO</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a)</li><li class="src short"><a href="#v:readTMQueue">readTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)</li><li class="src short"><a href="#v:tryReadTMQueue">tryReadTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a))</li><li class="src short"><a href="#v:peekTMQueue">peekTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)</li><li class="src short"><a href="#v:tryPeekTMQueue">tryPeekTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a))</li><li class="src short"><a href="#v:writeTMQueue">writeTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> ()</li><li class="src short"><a href="#v:unGetTMQueue">unGetTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> ()</li><li class="src short"><a href="#v:closeTMQueue">closeTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> ()</li><li class="src short"><a href="#v:isClosedTMQueue">isClosedTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isEmptyTMQueue">isEmptyTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a></li></ul></div><div id="interface"><h1 id="g:1">The TMQueue type</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TMQueue" class="def">TMQueue</a> a <a href="src/Control-Concurrent-STM-TMQueue.html#TMQueue" class="link">Source</a> <a href="#t:TMQueue" class="selflink">#</a></p><div class="doc"><p><code>TMQueue</code> is an abstract type representing a closeable FIFO
 queue.</p></div></div><h2 id="g:2">Creating TMQueues</h2><div class="top"><p class="src"><a id="v:newTMQueue" class="def">newTMQueue</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> (<a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a) <a href="src/Control-Concurrent-STM-TMQueue.html#newTMQueue" class="link">Source</a> <a href="#v:newTMQueue" class="selflink">#</a></p><div class="doc"><p>Build and returns a new instance of <code>TMQueue</code>.</p></div></div><div class="top"><p class="src"><a id="v:newTMQueueIO" class="def">newTMQueueIO</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a) <a href="src/Control-Concurrent-STM-TMQueue.html#newTMQueueIO" class="link">Source</a> <a href="#v:newTMQueueIO" class="selflink">#</a></p><div class="doc"><p><code>IO</code> version of <code><a href="Control-Concurrent-STM-TMQueue.html#v:newTMQueue">newTMQueue</a></code>. This is useful for creating
 top-level <code>TMQueue</code>s using <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO-Unsafe.html#v:unsafePerformIO">unsafePerformIO</a></code>, because using
 <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#v:atomically">atomically</a></code> inside <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO-Unsafe.html#v:unsafePerformIO">unsafePerformIO</a></code> isn't possible.</p></div></div><h2 id="g:3">Reading from TMQueues</h2><div class="top"><p class="src"><a id="v:readTMQueue" class="def">readTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) <a href="src/Control-Concurrent-STM-TMQueue.html#readTMQueue" class="link">Source</a> <a href="#v:readTMQueue" class="selflink">#</a></p><div class="doc"><p>Read the next value from the <code>TMQueue</code>, retrying if the queue
 is empty (and not closed). We return <code>Nothing</code> immediately if
 the queue is closed and empty.</p></div></div><div class="top"><p class="src"><a id="v:tryReadTMQueue" class="def">tryReadTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)) <a href="src/Control-Concurrent-STM-TMQueue.html#tryReadTMQueue" class="link">Source</a> <a href="#v:tryReadTMQueue" class="selflink">#</a></p><div class="doc"><p>A version of <code><a href="Control-Concurrent-STM-TMQueue.html#v:readTMQueue">readTMQueue</a></code> which does not retry. Instead it
 returns <code>Just Nothing</code> if the queue is open but no value is
 available; it still returns <code>Nothing</code> if the queue is closed
 and empty.</p></div></div><div class="top"><p class="src"><a id="v:peekTMQueue" class="def">peekTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) <a href="src/Control-Concurrent-STM-TMQueue.html#peekTMQueue" class="link">Source</a> <a href="#v:peekTMQueue" class="selflink">#</a></p><div class="doc"><p>Get the next value from the <code>TMQueue</code> without removing it,
 retrying if the queue is empty.</p></div></div><div class="top"><p class="src"><a id="v:tryPeekTMQueue" class="def">tryPeekTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)) <a href="src/Control-Concurrent-STM-TMQueue.html#tryPeekTMQueue" class="link">Source</a> <a href="#v:tryPeekTMQueue" class="selflink">#</a></p><div class="doc"><p>A version of <code><a href="Control-Concurrent-STM-TMQueue.html#v:peekTMQueue">peekTMQueue</a></code> which does not retry. Instead it
 returns <code>Just Nothing</code> if the queue is open but no value is
 available; it still returns <code>Nothing</code> if the queue is closed
 and empty.</p></div></div><h2 id="g:4">Writing to TMQueues</h2><div class="top"><p class="src"><a id="v:writeTMQueue" class="def">writeTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> () <a href="src/Control-Concurrent-STM-TMQueue.html#writeTMQueue" class="link">Source</a> <a href="#v:writeTMQueue" class="selflink">#</a></p><div class="doc"><p>Write a value to a <code>TMQueue</code>. If the queue is closed then the
 value is silently discarded. Use <code><a href="Control-Concurrent-STM-TMQueue.html#v:isClosedTMQueue">isClosedTMQueue</a></code> to determine
 if the queue is closed before writing, as needed.</p></div></div><div class="top"><p class="src"><a id="v:unGetTMQueue" class="def">unGetTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> () <a href="src/Control-Concurrent-STM-TMQueue.html#unGetTMQueue" class="link">Source</a> <a href="#v:unGetTMQueue" class="selflink">#</a></p><div class="doc"><p>Put a data item back onto a queue, where it will be the next
 item read. If the queue is closed then the value is silently
 discarded; you can use <code><a href="Control-Concurrent-STM-TMQueue.html#v:peekTMQueue">peekTMQueue</a></code> to circumvent this in certain
 circumstances.</p></div></div><h2 id="g:5">Closing TMQueues</h2><div class="top"><p class="src"><a id="v:closeTMQueue" class="def">closeTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> () <a href="src/Control-Concurrent-STM-TMQueue.html#closeTMQueue" class="link">Source</a> <a href="#v:closeTMQueue" class="selflink">#</a></p><div class="doc"><p>Closes the <code>TMQueue</code>, preventing any further writes.</p></div></div><h2 id="g:6">Predicates</h2><div class="top"><p class="src"><a id="v:isClosedTMQueue" class="def">isClosedTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/Control-Concurrent-STM-TMQueue.html#isClosedTMQueue" class="link">Source</a> <a href="#v:isClosedTMQueue" class="selflink">#</a></p><div class="doc"><p>Returns <code>True</code> if the supplied <code>TMQueue</code> has been closed.</p></div></div><div class="top"><p class="src"><a id="v:isEmptyTMQueue" class="def">isEmptyTMQueue</a> :: <a href="Control-Concurrent-STM-TMQueue.html#t:TMQueue">TMQueue</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-Conc.html#t:STM">STM</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/Control-Concurrent-STM-TMQueue.html#isEmptyTMQueue" class="link">Source</a> <a href="#v:isEmptyTMQueue" class="selflink">#</a></p><div class="doc"><p>Returns <code>True</code> if the supplied <code>TMQueue</code> is empty.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.2</p></div></body></html>