x
Yes
No
Do you want to visit DriveHQ English website?
首页
产品服务
价格
免费试用
下载客户端
关于我们
云文件服务
|
云备份服务
|
FTP服务
|
企业邮箱服务
|
网站托管
|
客户端软件
云文件服务
云备份服务
FTP服务
企业级邮箱服务
网站托管
客户端软件
mutex.hpp - Hosted on DriveHQ Cloud IT Platform
返回上层目录
上传
下载
共享
发布
新建文件夹
新建文件
复制
剪切
删除
粘贴
评论
升级服务
路径: \\game3dprogramming\materials\GameFactory\GameFactoryDemo\references\boost_1_35_0\boost\pool\detail\mutex.hpp
旋转
特效
属性
历史版本
// Copyright (C) 2000 Stephen Cleary // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // // See http://www.boost.org for updates, documentation, and revision history. #ifndef BOOST_POOL_MUTEX_HPP #define BOOST_POOL_MUTEX_HPP #include
// for workarounds // Extremely Light-Weight wrapper classes for OS thread synchronization // Configuration: for now, we just choose between pthread or Win32 mutexes or none #define BOOST_MUTEX_HELPER_NONE 0 #define BOOST_MUTEX_HELPER_WIN32 1 #define BOOST_MUTEX_HELPER_PTHREAD 2 #if !defined(BOOST_HAS_THREADS) && !defined(BOOST_NO_MT) # define BOOST_NO_MT #endif #ifdef BOOST_NO_MT // No multithreading -> make locks into no-ops #define BOOST_MUTEX_HELPER BOOST_MUTEX_HELPER_NONE #else #ifdef BOOST_WINDOWS #define BOOST_MUTEX_HELPER BOOST_MUTEX_HELPER_WIN32 #else #if defined(BOOST_HAS_UNISTD_H) #include
#endif #if defined(_POSIX_THREADS) || defined(BOOST_HAS_PTHREADS) #define BOOST_MUTEX_HELPER BOOST_MUTEX_HELPER_PTHREAD #endif #endif #endif #ifndef BOOST_MUTEX_HELPER #error Unable to determine platform mutex type; define BOOST_NO_MT to assume single-threaded #endif #ifndef BOOST_NO_MT # ifdef BOOST_WINDOWS # include
# endif # if defined(_POSIX_THREADS) || defined(BOOST_HAS_PTHREADS) # include
# endif #endif namespace boost { namespace details { namespace pool { #ifndef BOOST_NO_MT #ifdef BOOST_WINDOWS class win32_mutex { private: CRITICAL_SECTION mtx; win32_mutex(const win32_mutex &); void operator=(const win32_mutex &); public: win32_mutex() { InitializeCriticalSection(&mtx); } ~win32_mutex() { DeleteCriticalSection(&mtx); } void lock() { EnterCriticalSection(&mtx); } void unlock() { LeaveCriticalSection(&mtx); } }; #endif // defined(BOOST_WINDOWS) #if defined(_POSIX_THREADS) || defined(BOOST_HAS_PTHREADS) class pthread_mutex { private: pthread_mutex_t mtx; pthread_mutex(const pthread_mutex &); void operator=(const pthread_mutex &); public: pthread_mutex() { pthread_mutex_init(&mtx, 0); } ~pthread_mutex() { pthread_mutex_destroy(&mtx); } void lock() { pthread_mutex_lock(&mtx); } void unlock() { pthread_mutex_unlock(&mtx); } }; #endif // defined(_POSIX_THREADS) || defined(BOOST_HAS_PTHREADS) #endif // !defined(BOOST_NO_MT) class null_mutex { private: null_mutex(const null_mutex &); void operator=(const null_mutex &); public: null_mutex() { } static void lock() { } static void unlock() { } }; #if BOOST_MUTEX_HELPER == BOOST_MUTEX_HELPER_NONE typedef null_mutex default_mutex; #elif BOOST_MUTEX_HELPER == BOOST_MUTEX_HELPER_WIN32 typedef win32_mutex default_mutex; #elif BOOST_MUTEX_HELPER == BOOST_MUTEX_HELPER_PTHREAD typedef pthread_mutex default_mutex; #endif } // namespace pool } // namespace details } // namespace boost #undef BOOST_MUTEX_HELPER_WIN32 #undef BOOST_MUTEX_HELPER_PTHREAD #undef BOOST_MUTEX_HELPER_NONE #undef BOOST_MUTEX_HELPER #endif
mutex.hpp
网页地址
文件地址
上一页
5/14
下一页
下载
( 3 KB )
Comments
Total ratings:
0
Average rating:
无评论
of 10
Would you like to comment?
Join now
, or
Logon
if you are already a member.