This file is indexed.

/usr/share/qt5/doc/qdoc/17-qdoc-commands-thread.html is in qttools5-doc-html 5.9.5-0ubuntu1.

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
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qdoc-manual-contextcmds.qdoc -->
  <title>Thread Support | QDoc Manual 5.9</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td >Qt 5.9</td><td ><a href="qdoc-index.html">QDoc Manual</a></td><td >Thread Support</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right">Qt 5.9.5 Reference Documentation</td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
  <link rel="prev" href="16-qdoc-commands-status.html" />
  <link rel="next" href="18-qdoc-commands-relating.html" />
<p class="naviNextPrevious headerNavi">
<a class="prevPage" href="16-qdoc-commands-status.html">Status</a>
<span class="naviSeparator">  &#9702;  </span>
<a class="nextPage" href="18-qdoc-commands-relating.html">Relating Things</a>
</p><p/>
<div class="sidebar">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#example">Example</a></li>
<li class="level1"><a href="#commands">Commands</a></li>
<li class="level2"><a href="#threadsafe">\threadsafe</a></li>
<li class="level2"><a href="#reentrant">\reentrant</a></li>
<li class="level2"><a href="#nonreentrant">\nonreentrant</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">Thread Support</h1>
<span class="subtitle"></span>
<!-- $$$17-qdoc-commands-thread.html-description -->
<div class="descr"> <a name="details"></a>
<p>The thread support commands are for specifying the level of support for multithreaded programming in a class or function. There are three levels of support: <code>threadsafe</code>, <code>reentrant</code> and <code>nonreentrant</code>.</p>
<p>The default is <code>nonreentrant</code> which means that the associated class or function cannot be called by multiple threads. <code>Reentrant</code> and <code>threadsafe</code> are levels primarily used for classes.</p>
<p><code>Reentrant</code> means that all the functions in the referenced class can be called simultaneously by multiple threads, provided that each invocation of the functions reference unique data. While <code>threadsafe</code> means that all the functions in the referenced class can be called simultaneously by multiple threads even when each invocation references shared data.</p>
<p>When a class is marked <a href="17-qdoc-commands-thread.html#reentrant-command">\reentrant</a> or <a href="17-qdoc-commands-thread.html#threadsafe-command">\threadsafe</a>, functions in that class can be marked <code>nonreentrant</code> using the <a href="17-qdoc-commands-thread.html#nonreentrant-command">\nonreentrant</a> command.</p>
<a name="example"></a>
<h2 id="example">Example</h2>
<a name="reentrant-example"></a><pre class="cpp">

  \beginqdoc
      \<span class="keyword">class</span> <span class="type"><a href="../qtcore/qlocale.html">QLocale</a></span>
      \brief The <span class="type"><a href="../qtcore/qlocale.html">QLocale</a></span> <span class="keyword">class</span> converts between numbers and their
      string representations in various languages<span class="operator">.</span>

      \reentrant
      \ingroup i18n
      \ingroup text

      <span class="type"><a href="../qtcore/qlocale.html">QLocale</a></span> is initialized with a language<span class="operator">/</span>country pair in its
      constructor and offers number<span class="operator">-</span>to<span class="operator">-</span>string and string<span class="operator">-</span>to<span class="operator">-</span>number
      conversion functions similar to those in <span class="type"><a href="../qtcore/qstring.html">QString</a></span><span class="operator">.</span>

      <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>

      \nonreentrant

      Sets the global <span class="keyword">default</span> locale to \a locale<span class="operator">.</span> These values are
      used when a <span class="type"><a href="../qtcore/qlocale.html">QLocale</a></span> object is constructed with no
      arguments<span class="operator">.</span> If <span class="keyword">this</span> function is <span class="keyword">not</span> called<span class="operator">,</span> the system<span class="char">'s locale
      is used.

      \warning In a multithreaded application, the default locale
      should be set at application startup, before any non-GUI
      threads are created.

      \sa system(), c()
  \endqdoc
  void QLocale::setDefault(const QLocale &amp;locale)
  {
      default_d = locale.d;
  }
  </span>

</pre>
<p>QDoc renders this as:</p>
<blockquote>            <h1><center>QLocale Class Reference</center></h1>
        <p>The <a href="../qtcore/qlocale.html">QLocale</a> class converts between numbers and their string representations in various languages. More..&#x2e;</p>
<pre class="cpp">

  <span class="preprocessor">#include &lt;QLocale&gt;</span>

</pre>
<p><b>Note:</b> All the functions in this class are <a href="17-qdoc-commands-thread.html#reentrant">reentrant</a>, except <a href="../qtcore/qlocale.html#setDefault">setDefault()</a>.</p>
<p>...</p>
            <hr />
            <h2>Member Type Documentation</h2>
        <p>...</p>
            <h3>void QLocale::setDefault ( const QLocale & locale ) </h3>
        <p>Sets the global default locale to locale. These values are used when a <a href="../qtcore/qlocale.html">QLocale</a> object is constructed with no arguments. If this function is not called, the system's locale is used.</p>
<p><b>Warning:</b> In a multithreaded application, the default locale should be set at application startup, before any non-GUI threads are created.</p>
<p><b>Warning:</b> This function is not reentrant.</p>
<p>See also <a href="../qtcore/qlocale.html#system">system()</a> and <a href="../qtcore/qlocale.html#c">c()</a>.</p>
<p>...</p>
</blockquote>
<p>As shown above, QDoc generates a notification when a class is declared reentrant, and lists the exceptions (the declared nonreentrant functions). A link to the general documentation on <a href="17-qdoc-commands-thread.html#reentrant">reentrancy and thread-safety</a> is included. In addition a warning, &quot;<b>Warning</b>: This function is not reentrant.&quot;, is generated in the nonreentrant functions' documentation.</p>
<p>QDoc will generate the same notification and warnings when a class is declared threadsafe.</p>
<p>For more information see the general documentation on <a href="17-qdoc-commands-thread.html#reentrant">reentrancy and thread-safety</a>.</p>
<a name="commands"></a>
<h2 id="commands">Commands</h2>
<a name="threadsafe-command"></a><a name="threadsafe"></a>
<h3 >\threadsafe</h3>
<p>The \threadsafe command includes a line in the documentation to indicate that the associated class or function is <i>threadsafe</i> and can be called simultaneously by multiple threads, even when separate invocations reference shared data.</p>
<p>The command must stand on its own line.</p>
<p>The documentation generated from this command will be similar to the what is generated for the <a href="17-qdoc-commands-thread.html#reentrant-command">\reentrant</a> command. See the example above in the <a href="17-qdoc-commands-thread.html#reentrant-example">introduction</a>.</p>
<p>See also <a href="17-qdoc-commands-thread.html#reentrant-command">\reentrant</a> and <a href="17-qdoc-commands-thread.html#nonreentrant-command">\nonreentrant</a>.</p>
<a name="reentrant-command"></a><a name="reentrant"></a>
<h3 >\reentrant</h3>
<p>The \reentrant command indicates that the associated class or function can be called simultaneously by multiple threads, provided that each invocation references its own data. See the <a href="17-qdoc-commands-thread.html#reentrant-example">example</a> above.</p>
<p>The command must stand on its own line.</p>
<p>See also <a href="17-qdoc-commands-thread.html#nonreentrant-command">\nonreentrant</a> and <a href="17-qdoc-commands-thread.html#threadsafe-command">\threadsafe</a>.</p>
<a name="nonreentrant-command"></a><a name="nonreentrant"></a>
<h3 >\nonreentrant</h3>
<p>The \nonreentrant command indicates that the associated class or function cannot be called by multiple threads. Nonreentrant is the default case.</p>
<p>The command must stand on its own line.</p>
<p>When a class is marked <a href="17-qdoc-commands-thread.html#reentrant-command">\reentrant</a> or <a href="17-qdoc-commands-thread.html#threadsafe-command">\threadsafe</a>, functions in that class can be marked <code>nonreentrant</code> using this command in the <a href="13-qdoc-commands-topics.html#fn-command">\fn</a> comment of the functions to be excluded.</p>
<p>See also <a href="17-qdoc-commands-thread.html#reentrant-command">\reentrant</a> and <a href="17-qdoc-commands-thread.html#threadsafe-command">\threadsafe</a>.</p>
</div>
<!-- @@@17-qdoc-commands-thread.html -->
<p class="naviNextPrevious footerNavi">
<a class="prevPage" href="16-qdoc-commands-status.html">Status</a>
<span class="naviSeparator">  &#9702;  </span>
<a class="nextPage" href="18-qdoc-commands-relating.html">Relating Things</a>
</p>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2017 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>