crashpad/doc/generated/doxygen/classcrashpad_1_1Semaphore.html
2017-04-18 13:45:29 -04:00

249 lines
13 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 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/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crashpad: crashpad::Semaphore Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="crashpad_doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Crashpad
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacecrashpad.html">crashpad</a></li><li class="navelem"><a class="el" href="classcrashpad_1_1Semaphore.html">Semaphore</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="classcrashpad_1_1Semaphore-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">crashpad::Semaphore Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>An anonymous in-process counting sempahore.
<a href="classcrashpad_1_1Semaphore.html#details">More...</a></p>
<p><code>#include &quot;util/synchronization/semaphore.h&quot;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:affe042d8a25991c90213370af5453010"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Semaphore.html#affe042d8a25991c90213370af5453010">Semaphore</a> (int value)</td></tr>
<tr class="memdesc:affe042d8a25991c90213370af5453010"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the semaphore. <a href="#affe042d8a25991c90213370af5453010">More...</a><br /></td></tr>
<tr class="separator:affe042d8a25991c90213370af5453010"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade6db63246c9d6f3a36f3631b04c2bfd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Semaphore.html#ade6db63246c9d6f3a36f3631b04c2bfd">Wait</a> ()</td></tr>
<tr class="memdesc:ade6db63246c9d6f3a36f3631b04c2bfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the wait (or “procure”) operation on the semaphore. <a href="#ade6db63246c9d6f3a36f3631b04c2bfd">More...</a><br /></td></tr>
<tr class="separator:ade6db63246c9d6f3a36f3631b04c2bfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af22faf8672a7d7a6dd96aefc53560712"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Semaphore.html#af22faf8672a7d7a6dd96aefc53560712">TimedWait</a> (double seconds)</td></tr>
<tr class="memdesc:af22faf8672a7d7a6dd96aefc53560712"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs a timed wait (or “procure”) operation on the semaphore. <a href="#af22faf8672a7d7a6dd96aefc53560712">More...</a><br /></td></tr>
<tr class="separator:af22faf8672a7d7a6dd96aefc53560712"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ca2f5c53cd11234dc765d2ec95b6c7a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Semaphore.html#a2ca2f5c53cd11234dc765d2ec95b6c7a">Signal</a> ()</td></tr>
<tr class="memdesc:a2ca2f5c53cd11234dc765d2ec95b6c7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the signal (or “post”) operation on the semaphore. <a href="#a2ca2f5c53cd11234dc765d2ec95b6c7a">More...</a><br /></td></tr>
<tr class="separator:a2ca2f5c53cd11234dc765d2ec95b6c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a69bede1d3b6d654a8084fbea0a59a208"><td class="memItemLeft" align="right" valign="top">static constexpr double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1Semaphore.html#a69bede1d3b6d654a8084fbea0a59a208">kIndefiniteWait</a></td></tr>
<tr class="memdesc:a69bede1d3b6d654a8084fbea0a59a208"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="classcrashpad_1_1Semaphore.html#af22faf8672a7d7a6dd96aefc53560712" title="Performs a timed wait (or “procure”) operation on the semaphore. ">TimedWait()</a> argument that causes an indefinite wait. <a href="#a69bede1d3b6d654a8084fbea0a59a208">More...</a><br /></td></tr>
<tr class="separator:a69bede1d3b6d654a8084fbea0a59a208"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>An anonymous in-process counting sempahore. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="affe042d8a25991c90213370af5453010"></a>
<h2 class="memtitle"><span class="permalink"><a href="#affe042d8a25991c90213370af5453010">&#9670;&nbsp;</a></span>Semaphore()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">crashpad::Semaphore::Semaphore </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes the semaphore. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The initial value of the semaphore.</td></tr>
</table>
</dd>
</dl>
<p>If the semaphore cannot be created, execution is terminated. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a2ca2f5c53cd11234dc765d2ec95b6c7a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ca2f5c53cd11234dc765d2ec95b6c7a">&#9670;&nbsp;</a></span>Signal()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::Semaphore::Signal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Performs the signal (or “post”) operation on the semaphore. </p>
<p>Atomically increments the value of the semaphore by 1. If the new value is 0, a caller blocked in <a class="el" href="classcrashpad_1_1Semaphore.html#ade6db63246c9d6f3a36f3631b04c2bfd" title="Performs the wait (or “procure”) operation on the semaphore. ">Wait()</a> will be awakened. </p>
</div>
</div>
<a id="af22faf8672a7d7a6dd96aefc53560712"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af22faf8672a7d7a6dd96aefc53560712">&#9670;&nbsp;</a></span>TimedWait()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool crashpad::Semaphore::TimedWait </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>seconds</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Performs a timed wait (or “procure”) operation on the semaphore. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">seconds</td><td>The maximum number of seconds to wait for the operation to complete. If <em>seconds</em> is <a class="el" href="classcrashpad_1_1Semaphore.html#a69bede1d3b6d654a8084fbea0a59a208" title="A TimedWait() argument that causes an indefinite wait. ">kIndefiniteWait</a>, this method behaves as <a class="el" href="classcrashpad_1_1Semaphore.html#ade6db63246c9d6f3a36f3631b04c2bfd" title="Performs the wait (or “procure”) operation on the semaphore. ">Wait()</a>, and will not time out.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>false</code> if the wait timed out, <code>true</code> otherwise.</dd></dl>
<p>This method is simlar to <a class="el" href="classcrashpad_1_1Semaphore.html#ade6db63246c9d6f3a36f3631b04c2bfd" title="Performs the wait (or “procure”) operation on the semaphore. ">Wait()</a>, except that the amount of time that it blocks is limited. </p>
</div>
</div>
<a id="ade6db63246c9d6f3a36f3631b04c2bfd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade6db63246c9d6f3a36f3631b04c2bfd">&#9670;&nbsp;</a></span>Wait()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::Semaphore::Wait </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Performs the wait (or “procure”) operation on the semaphore. </p>
<p>Atomically decrements the value of the semaphore by 1. If the new value is negative, this function blocks and will not return until the semaphores value is incremented to 0 by <a class="el" href="classcrashpad_1_1Semaphore.html#a2ca2f5c53cd11234dc765d2ec95b6c7a" title="Performs the signal (or “post”) operation on the semaphore. ">Signal()</a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classcrashpad_1_1Semaphore.html#af22faf8672a7d7a6dd96aefc53560712" title="Performs a timed wait (or “procure”) operation on the semaphore. ">TimedWait()</a> </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a69bede1d3b6d654a8084fbea0a59a208"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69bede1d3b6d654a8084fbea0a59a208">&#9670;&nbsp;</a></span>kIndefiniteWait</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr double crashpad::Semaphore::kIndefiniteWait</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line"> std::numeric_limits&lt;double&gt;::infinity()</div></div><!-- fragment -->
<p>A <a class="el" href="classcrashpad_1_1Semaphore.html#af22faf8672a7d7a6dd96aefc53560712" title="Performs a timed wait (or “procure”) operation on the semaphore. ">TimedWait()</a> argument that causes an indefinite wait. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>util/synchronization/semaphore.h</li>
<li>util/synchronization/semaphore_mac.cc</li>
<li>util/synchronization/semaphore_posix.cc</li>
<li>util/synchronization/semaphore_win.cc</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>