00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00034
#if !defined( _THREADS_1__POSIX__MUTEX_SEM_HPP_ )
00035
#define _THREADS_1__POSIX__MUTEX_SEM_HPP_
00036
00037
#include <unistd.h>
00038
#include <pthread.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
00052
friend class _os_cond_var_t;
00053
private :
00055 pthread_mutex_t
m_mutex_struct;
00056
00057
public :
00059
inline
00060 _os_mutex_sem_t()
00061 {
00062 pthread_mutex_t mutex_initial =
00063 PTHREAD_MUTEX_INITIALIZER;
00064
m_mutex_struct = mutex_initial;
00065 }
00066
inline
00067 ~
_os_mutex_sem_t()
00068 {
00069 }
00070
00072
inline void
00073 lock()
00074 {
00075 pthread_mutex_lock( &
m_mutex_struct );
00076 }
00077
00079
inline void
00080 release()
00081 {
00082 pthread_mutex_unlock( &
m_mutex_struct );
00083 }
00084 };
00085
00086 }
00087
00088
#endif