/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_
|