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

threads_1/posix/h/cond_var.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__POSIX__COND_VAR_HPP_ ) 00035 #define _THREADS_1__POSIX__COND_VAR_HPP_ 00036 00037 #include <unistd.h> 00038 #include <pthread.h> 00039 00040 #include <cpp_util_2/h/nocopy.hpp> 00041 00042 #include <threads_1/h/threads.hpp> 00043 00044 #include <threads_1/posix/h/mutex_sem.hpp> 00045 00046 namespace threads_1 00047 { 00048 00052 class _os_cond_var_t : 00053 public cpp_util_2::nocopy_t 00054 { 00055 private : 00057 pthread_cond_t m_event; 00058 00059 public : 00060 inline 00061 _os_cond_var_t() 00062 { 00063 pthread_cond_t initial = PTHREAD_COND_INITIALIZER; 00064 m_event = initial; 00065 } 00066 inline 00067 ~_os_cond_var_t() 00068 { 00069 pthread_cond_destroy( &m_event ); 00070 } 00071 00073 inline void 00074 wait( _os_mutex_sem_t & mutex ) 00075 { 00076 pthread_cond_wait( &m_event, 00077 &mutex.m_mutex_struct ); 00078 } 00079 00081 inline void 00082 notify_one() 00083 { 00084 pthread_cond_signal( &m_event ); 00085 } 00086 00088 inline void 00089 notify_all() 00090 { 00091 pthread_cond_broadcast( &m_event ); 00092 } 00093 }; 00094 00095 } /* namespace threads_1 */ 00096 00097 #endif

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