This file is indexed.

/usr/include/OpenThreads/Barrier is in libopenthreads-dev 3.0.1-2.

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
/* -*-c++-*- OpenThreads library, Copyright (C) 2002 - 2007  The Open Thread Group
 *
 * This library is open source and may be redistributed and/or modified under  
 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or 
 * (at your option) any later version.  The full license is in LICENSE file
 * included with this distribution, and on the openscenegraph.org website.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 * OpenSceneGraph Public License for more details.
*/


//
// Barrier - C++ barrier class
// ~~~~~~~
// 

#ifndef _OPENTHREADS_BARRIER_
#define _OPENTHREADS_BARRIER_

#include <OpenThreads/Exports>

namespace OpenThreads {


/**
 *  @class Barrier
 *  @brief This class provides an object-oriented thread barrier interface
 *
 *  @warning It is unwise to use the construct "Barrier barrier" in the
 *           global namespace on sgi's.  The object "barrier"
 *           will confilict with the c-library sproc function "barrier" and
 *           unpredictable results may occur. You have been warned.
 */
class OPENTHREAD_EXPORT_DIRECTIVE Barrier {

public:

    /**
     *  Constructor
     */
    Barrier(int numThreads=0);

    /**
     *  Destructor
     */
    virtual ~Barrier();

    /**
     *  Reset the barrier to it's original state.
     */
    virtual void reset();

    /**
     *  Block until numThreads threads have entered the barrier.
     */
    virtual void block(unsigned int numThreads=0);

    /**
     *  Release the barrier, now.
     */
    virtual void release();

    /**
     *  Return the number of threads currently blocked in the barrier,
     *  Return -1 if error.
     */ 
    virtual int numThreadsCurrentlyBlocked();


    void invalidate();
    
private:

    /**
     *  Private copy constructor, to prevent tampering.
     */
    Barrier(const Barrier &/*b*/) {};

    /**
     *  Private copy assignment, to prevent tampering.
     */
    Barrier &operator=(const Barrier &/*b*/) {return *(this);};

    /**
     *  Implementation-specific private data.
     */
    void *_prvData;


    bool _valid;

};

}

#endif // !_OPENTHREADS_BARRIER_