39 lines
625 B
C++
39 lines
625 B
C++
#ifndef SyncObject_Solaris_h
|
|
#define SyncObject_Solaris_h
|
|
|
|
#ifndef SyncObject_h
|
|
# error include SyncObject.h instead
|
|
#endif
|
|
|
|
#include <pthread.h>
|
|
|
|
namespace act
|
|
{
|
|
class SyncObject
|
|
{
|
|
private:
|
|
SyncObject(const SyncObject&);
|
|
SyncObject& operator=(const SyncObject&);
|
|
|
|
public:
|
|
SyncObject();
|
|
~SyncObject();
|
|
|
|
void lock();
|
|
void unlock();
|
|
|
|
long lockCount() const { return m_lock_count; }
|
|
pid_t threadId() const { return m_thread_id; }
|
|
|
|
private:
|
|
volatile long m_lock_count;
|
|
volatile pid_t m_thread_id;
|
|
pthread_mutex_t m_sync;
|
|
};
|
|
|
|
void Sleep(long msec);
|
|
|
|
} // namespace act
|
|
|
|
#endif // SyncObject_Solaris_h
|