git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1321 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
39 lines
744 B
C++
39 lines
744 B
C++
/**
|
|
* \brief Thread safe (synchronized) counter.
|
|
*/
|
|
|
|
#ifndef __SYNCHRONIZED_COUNTER_HPP__
|
|
#define __SYNCHRONIZED_COUNTER_HPP__
|
|
|
|
#ifndef __puma
|
|
#include <boost/thread.hpp>
|
|
#include <sys/types.h>
|
|
#endif
|
|
|
|
namespace fail {
|
|
|
|
/**
|
|
* \class ssd
|
|
*
|
|
* Provides a thread safe (synchronized) counter. When a method is called,
|
|
* the internal mutex is automatically locked. On return, the lock is
|
|
* automatically released ("scoped lock").
|
|
*/
|
|
class SynchronizedCounter {
|
|
private:
|
|
int m_counter;
|
|
#ifndef __puma
|
|
boost::mutex m_mutex; //! The mutex to synchronise on
|
|
#endif
|
|
public:
|
|
SynchronizedCounter() : m_counter(0) { }
|
|
|
|
int increment();
|
|
int decrement();
|
|
int getValue();
|
|
};
|
|
|
|
} // end-of-namespace: fail
|
|
|
|
#endif // __SYNCHRONIZED_COUNTER_HPP__
|