x
Yes
No
Do you want to visit DriveHQ English website?
Inicio
Características
Precios
Prueba gratuita
Software cliente
Acerca de nosotros
Servidor de archivos
|
Solución de copias de seguridad
|
Servidor FTP
|
Servidor de correo electrónico
|
Alojamiento web
|
Software cliente
Servidor de archivos
Solución de copia de seguridad
Servidor FTP
Servidor de correo electrónico
Alojamiento web
Software cliente
mutex.hpp - Hosted on DriveHQ Cloud IT Platform
Arriba
Subir
Descargar
Compartir
Publicar
Nueva carpeta
Nuevo archivo
Copiar
Cortar
Eliminar
Pegar
Clasificación
Actualizar
Ruta de la carpeta: \\game3dprogramming\materials\GameFactory\GameFactoryDemo\references\boost_1_35_0\boost\pool\detail\mutex.hpp
Girar
Efecto
Propiedad
Historial
// 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
Dirección de la página
Dirección del archivo
Anterior
5/14
Siguiente
Descargar
( 3 KB )
Comments
Total ratings:
0
Average rating:
No clasificado
of 10
Would you like to comment?
Join now
, or
Logon
if you are already a member.