以下代码在跨平台环境下包装了互斥量(mutex),支持以下平台 linux/windows,vc/gcc/mingw
/**
* @file -
* @author jingqi
* @date 2010-7-9
*/
#ifndef ___HEADFILE___814FCD2E_2F65_4787_93E5_ECDE19588938_
#define ___HEADFILE___814FCD2E_2F65_4787_93E5_ECDE19588938_
#include <assert.h>
#include <nut/platform/platform.hpp>
#if defined(NUT_PLATFORM_OS_WINDOWS)
# include <windows.h>
#endif
#if !defined(NUT_PLATFORM_OS_WINDOWS) || defined(NUT_PLATFORM_CC_MINGW)
# include <pthread.h>
#endif
namespace nut
{
class Mutex
{
#if defined(NUT_PLATFORM_OS_WINDOWS) && !defined(NUT_PLATFORM_CC_MINGW)
HANDLE m_hmutex;
#else
pthread_mutex_t m_mutex;
#endif
public :
Mutex ()
{
#if defined(NUT_PLATFORM_OS_WINDOWS) && !defined(NUT_PLATFORM_CC_MINGW)
m_hmutex = ::CreateMutex(NULL, FALSE, NULL);
#else
::pthread_mutexattr_t attr;
::pthread_mutexattr_init(&attr);
: