This file is indexed.

/usr/share/doc/libqb-dev/html/qb_atomic_overview.html is in libqb-doc 1.0.1-1.

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
<!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.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libqb: Atomic operations</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" />
</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">libqb
   &#160;<span id="projectnumber">1.0.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<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="index.html">index</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">Atomic operations </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>Basic atomic integer and pointer operations.</p>
<p>The following functions can be used to atomically access integers and pointers. They are implemented as inline assembler function on most platforms and use slower fall-backs otherwise. Using them can sometimes save you from using a performance-expensive pthread_mutex to protect the integer or pointer.</p>
<p>The most important usage is reference counting. Using <a class="el" href="qbatomic_8h.html#aa6d16c0f72f2b24d06eff6f740c08e73" title="Atomically increments the integer pointed to by atomic by 1. ">qb_atomic_int_inc()</a> and <a class="el" href="qbatomic_8h.html#ac2cf6faea05c0632d7bd7c0e06d5193c" title="Atomically decrements the integer pointed to by atomic by 1. ">qb_atomic_int_dec_and_test()</a> makes reference counting a very fast operation.</p>
<p>You must not directly read integers or pointers concurrently accessed by multiple threads, but use the atomic accessor functions instead. That is, always use <a class="el" href="qbatomic_8h.html#a553b439f7a3e80c77238acad0873c7ae" title="Reads the value of the integer pointed to by atomic. ">qb_atomic_int_get()</a> and <a class="el" href="qbatomic_8h.html#a69338f81697a671dc5a3a8a988a6f9e1" title="Reads the value of the pointer pointed to by atomic. ">qb_atomic_pointer_get()</a> for read outs. They provide the necessary synchronization mechanisms like memory barriers to access memory locations concurrently.</p>
<p>If you are using those functions for anything apart from simple reference counting, you should really be aware of the implications of doing that. There are literally thousands of ways to shoot yourself in the foot. So if in doubt, use a pthread_mutex. If you don't know, what memory barriers are, do not use anything but <a class="el" href="qbatomic_8h.html#aa6d16c0f72f2b24d06eff6f740c08e73" title="Atomically increments the integer pointed to by atomic by 1. ">qb_atomic_int_inc()</a> and <a class="el" href="qbatomic_8h.html#ac2cf6faea05c0632d7bd7c0e06d5193c" title="Atomically decrements the integer pointed to by atomic by 1. ">qb_atomic_int_dec_and_test()</a>.</p>
<p>It is not safe to set an integer or pointer just by assigning to it, when it is concurrently accessed by other threads with the following functions. Use <a class="el" href="qbatomic_8h.html#a69bcf9259804c24de476a2df054f0828" title="Compares oldval with the integer pointed to by atomic and if they are equal, atomically exchanges *at...">qb_atomic_int_compare_and_exchange()</a> or <a class="el" href="qbatomic_8h.html#aafd56dc5d3dd9ec0ac66eaf5a50e3918" title="Compares oldval with the pointer pointed to by atomic and if they are equal, atomically exchanges *at...">qb_atomic_pointer_compare_and_exchange()</a> respectively. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="qbatomic_8h.html" title="Basic atomic integer and pointer operations. ">qbatomic.h</a> </dd></dl>
</div></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.12
</small></address>
</body>
</html>