📄 classpreadwritemutex.html
字号:
<p> </td> </tr></table><a name="z421_0" doxytag="PReadWriteMutex::StartRead"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void PReadWriteMutex::StartRead </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>This function attempts to acquire the mutex for reading. This call may be nested and must have an equal number of <a class="el" href="classPReadWriteMutex.html#z421_1">EndRead()</a> calls for the mutex to be released. </td> </tr></table><a name="z421_2" doxytag="PReadWriteMutex::StartWrite"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void PReadWriteMutex::StartWrite </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>This function attempts to acquire the mutex for writing. This call may be nested and must have an equal number of <a class="el" href="classPReadWriteMutex.html#z421_3">EndWrite()</a> calls for the mutex to be released.<p>Note, if the same thread had a read lock previous to this call then the read lock is automatically released and reacquired when <a class="el" href="classPReadWriteMutex.html#z421_3">EndWrite()</a> is called, unless an <a class="el" href="classPReadWriteMutex.html#z421_1">EndRead()</a> is called. The <a class="el" href="classPReadWriteMutex.html#z421_1">EndRead()</a> and <a class="el" href="classPReadWriteMutex.html#z421_3">EndWrite()</a> calls do not have to be strictly nested.<p>It should also be noted that a consequence of this is that another thread may acquire the write lock before the thread that previously had the read lock. Thus it is impossibly to go straight from a read lock to write lock without the possiblility of the object being changed and application logic should take this into account. </td> </tr></table><hr><h2>Member Data Documentation</h2><a name="n7" doxytag="PReadWriteMutex::nestedThreads"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> PDictionary<<a class="el" href="classPOrdinalKey.html">POrdinalKey</a>, <a class="el" href="classPReadWriteMutex_1_1Nest.html">Nest</a>> PReadWriteMutex::nestedThreads<code> [protected]</code> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p> </td> </tr></table><a name="n8" doxytag="PReadWriteMutex::nestingMutex"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="classPMutex.html">PMutex</a> PReadWriteMutex::nestingMutex<code> [protected]</code> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p> </td> </tr></table><a name="n2" doxytag="PReadWriteMutex::readerCount"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> unsigned PReadWriteMutex::readerCount<code> [protected]</code> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p> </td> </tr></table><a name="n1" doxytag="PReadWriteMutex::readerMutex"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="classPMutex.html">PMutex</a> PReadWriteMutex::readerMutex<code> [protected]</code> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p> </td> </tr></table><a name="n0" doxytag="PReadWriteMutex::readerSemaphore"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="classPSemaphore.html">PSemaphore</a> PReadWriteMutex::readerSemaphore<code> [protected]</code> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p> </td> </tr></table><a name="n3" doxytag="PReadWriteMutex::starvationPreventer"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="classPMutex.html">PMutex</a> PReadWriteMutex::starvationPreventer<code> [protected]</code> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p> </td> </tr></table><a name="n6" doxytag="PReadWriteMutex::writerCount"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> unsigned PReadWriteMutex::writerCount<code> [protected]</code> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p> </td> </tr></table><a name="n5" doxytag="PReadWriteMutex::writerMutex"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="classPMutex.html">PMutex</a> PReadWriteMutex::writerMutex<code> [protected]</code> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p> </td> </tr></table><a name="n4" doxytag="PReadWriteMutex::writerSemaphore"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="classPSemaphore.html">PSemaphore</a> PReadWriteMutex::writerSemaphore<code> [protected]</code> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p> </td> </tr></table><hr>The documentation for this class was generated from the following file:<ul><li><a class="el" href="syncthrd_8h-source.html">syncthrd.h</a></ul><hr><address style="align: right;"><small>Generated on Wed Sep 29 22:44:18 2004 for PWLib by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -