Титульная страница | Пространства имен | Алфавитный указатель | Классы | Файлы | Члены пространства имен | Члены классов | Описания | Примеры

threads_1/win32/h/mutex_sem.mutex.hpp

00001 /* 00002 00003 threads_1: Multithreading support library 00004 Yauheni A. Akhotnikau (C) 2002-2003 00005 eao197@yahoo.com 00006 ------------------------------------------------- 00007 00008 Permission is granted to anyone to use this software for any purpose on any 00009 computer system, and to redistribute it freely, subject to the following 00010 restrictions: 00011 00012 1. This software is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00015 00016 2. The origin of this software must not be misrepresented, either by 00017 explicit claim or by omission. 00018 00019 3. Altered versions must be plainly marked as such, and must not be 00020 misrepresented as being the original software. 00021 00022 ------------------------------------------------- 00023 00024 */ 00034 #if !defined( _THREADS_1__WIN32__MUTEX_SEM_HPP_ ) 00035 #define _THREADS_1__WIN32__MUTEX_SEM_HPP_ 00036 00037 #define WIN32_LEAN_AND_MEAN 00038 #include <windows.h> 00039 00040 #include <cpp_util_2/h/nocopy.hpp> 00041 00042 namespace threads_1 00043 { 00044 00048 class _os_mutex_sem_t : 00049 public cpp_util_2::nocopy_t 00050 { 00051 private : 00053 HANDLE m_sem; 00054 00055 public : 00057 inline 00058 _os_mutex_sem_t() 00059 { 00060 m_sem = CreateMutex( 0, FALSE, 0 ); 00061 } 00062 inline 00063 ~_os_mutex_sem_t() 00064 { 00065 CloseHandle( m_sem ); 00066 } 00067 00069 inline void 00070 lock() 00071 { 00072 WaitForSingleObject( m_sem, INFINITE ); 00073 } 00074 00076 inline void 00077 release() 00078 { 00079 ReleaseMutex( m_sem ); 00080 } 00081 }; 00082 00083 } /* namespace threads_1 */ 00084 00085 #endif

Документация по threads_1. Последние изменения: Wed Aug 4 06:46:01 2004. Создано системой doxygen 1.3.7
Hosted by uCoz