This file is indexed.

/usr/include/rlog/Mutex.h is in librlog-dev 1.4-2ubuntu2.

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
/*****************************************************************************
 * Author:   Vadim Zeitlin <vadim@wxwidgets.org>
 *
 *****************************************************************************
 * Copyright (c) 2004 Vadim Zeitlin
 *
 * This library is free software; you can distribute it and/or modify it under
 * the terms of the GNU Lesser General Public License (LGPL), as published by
 * the Free Software Foundation; either version 2.1 of the License, or (at your
 * option) any later version.
 *
 * 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 LGPL in the file COPYING for more
 * details.
 *
 */

#ifndef _Mutex_incl_
#define _Mutex_incl_

#include <rlog/common.h>

#ifdef _WIN32
    #include <windows.h>
    // conflict with our own ERROR...
    #undef ERROR

    typedef CRITICAL_SECTION rlog_mutex_t;
    #define rlog_mutex_init InitializeCriticalSection
    #define rlog_mutex_destroy DeleteCriticalSection
    #define rlog_mutex_lock EnterCriticalSection
    #define rlog_mutex_unlock LeaveCriticalSection
#else
    #include <pthread.h>

    typedef pthread_mutex_t rlog_mutex_t;
    #define rlog_mutex_init(m) pthread_mutex_init((m), 0)
    #define rlog_mutex_destroy pthread_mutex_destroy
    #define rlog_mutex_lock pthread_mutex_lock
    #define rlog_mutex_unlock pthread_mutex_unlock
#endif

namespace rlog
{
    /*! @class Mutex
	@brief Class encapsulating a critical section under Win32 or a mutex
	under Unix.

	This class should never be used standalone but always passed to Lock,
	see the example there.
    */
    class RLOG_DECL Mutex
    {
    public:
	Mutex() { rlog_mutex_init(&m_mutex); }
	~Mutex() { rlog_mutex_destroy(&m_mutex); }

	void Lock() { rlog_mutex_lock(&m_mutex); }
	void Unlock() { rlog_mutex_unlock(&m_mutex); }

    private:
	rlog_mutex_t m_mutex;

	Mutex( const Mutex & );
	Mutex & operator = ( const Mutex & );
    };
} // namespace rlog

#endif // _Mutex_incl_