11.1.      381



#include <pth.read.li>

pthread_mutex_destroy(pthread_mutex_t *mutex) ;

pthread_mutex_init(pthread_mutex_t *mutex,

pthread_mutexattr_t *attr) ;

pthread_mutex_lock(pthread_mutex_t *mutex) ;

pthread_mutex_timedlock(pthread_mutex_t *mutex) ;

pthread_mutex_trylock(pthread_mutex_t *mutex) ;

pthread_mutex_unlock(pthread_mutex_t *mutex) ;

          
pthread_mutex_t.       pthread_mutex_t
   ,     ,
   .   11.1,   -
  mutex.

//  11.1.   mutex

class mutex{
protected:

pthread_mutex_t *Mutex;

pthread_mutexattr_t *Attr;

public:

mutex(void)

int lock(void) ;

int unlock(void);

int trylock(void);

int timedlock(void);

};

  mutex,      .
          
 .    pthread_mutex_t
  ,       -
 .     
      ,  .
        pthread_mutex_t,
 ,     ,     .

-  mutex      
 Pthread-, , .

//  11.2. -  mutex

mutex::mutex(void)
{

try{

int Value;

Value = pthread_mutexattr_int(Attr) ;

//. . .

Value = pthread_mutex_init(Mutex,Attr);

//.. .
}
}