Mercurial > projects > hoofbaby
view deps/Platinum/ThirdParty/Neptune/Source/System/Win32/NptWin32Threads.h @ 0:3425707ddbf6
Initial import (hopefully this mercurial stuff works...)
author | fraserofthenight |
---|---|
date | Mon, 06 Jul 2009 08:06:28 -0700 |
parents | |
children |
line wrap: on
line source
/***************************************************************** | | Neptune - Threads :: Win32 Implementation | | (c) 2001-2003 Gilles Boccon-Gibod | Author: Gilles Boccon-Gibod (bok@bok.net) | ****************************************************************/ /*---------------------------------------------------------------------- | includes +---------------------------------------------------------------------*/ #include "NptConfig.h" #include "NptTypes.h" #include "NptThreads.h" #include "NptDebug.h" /*---------------------------------------------------------------------- | NPT_Win32Mutex +---------------------------------------------------------------------*/ class NPT_Win32Mutex : public NPT_MutexInterface { public: // methods NPT_Win32Mutex(); virtual ~NPT_Win32Mutex(); // NPT_Mutex methods virtual NPT_Result Lock(); virtual NPT_Result Unlock(); private: // members HANDLE m_Handle; }; /*---------------------------------------------------------------------- | NPT_Win32Event +---------------------------------------------------------------------*/ class NPT_Win32Event { public: // methods NPT_Win32Event(bool manual = false, bool initial = false); virtual ~NPT_Win32Event(); virtual NPT_Result Wait(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE); virtual void Signal(); virtual void Reset(); private: // members HANDLE m_Event; }; /*---------------------------------------------------------------------- | NPT_Win32CriticalSection +---------------------------------------------------------------------*/ class NPT_Win32CriticalSection { public: // methods NPT_Win32CriticalSection(); ~NPT_Win32CriticalSection(); // NPT_Mutex methods NPT_Result Lock(); NPT_Result Unlock(); private: // members CRITICAL_SECTION m_CriticalSection; };