#ifndef SyncObject_Win32_h #define SyncObject_Win32_h #ifndef SyncObject_h # error include SyncObject.h instead #endif #ifndef _WIN32_WINNT # define _WIN32_WINNT 0x0403 #endif #include 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; } DWORD threadId() const { return m_thread_id; } private: volatile long m_lock_count; volatile DWORD m_thread_id; CRITICAL_SECTION m_sync; }; } // namespace act #endif // SyncObject_Win32_h