  599

     ,   -
  ,      -
     pthrea(3_*_init (),  -
  .       
      ,  
       .

 

     . , 
 .

struct obj {

pthread_mutex_t om;

int refcnt;

};

obj_done (struct obj *op)
{

pthread_mutex_lock (&op- >om) ;

if (--op- >refcnt ==0) {

pthread_mutex_unlock (&op- >om) ;

(A)     pthread_mutex_destroy (&op- >om) ;

(B)     free(op) ;

} else
(C)    pthread_mutex_unlock (&op->om) ;

}

    obj     ,  
obj_done()   ,     . 
        
(.    )     ( ).

 

.

 

pthread_mutex_getprioceiling(),pthread_mutex_lock(),
pthread_mutex_timedlock(),pthread_mutexattr_getpshared(),  Base
Definitions  IEEE Std 1003.1-2001, <pthread.h>.

  

     Issue 5.   
  POSIX Threads Extension.

Issue 6

 pthread_mutex_destroy()  pthread_mutex_init()  
  Threads.

     IEEE Std 1003. Id-1999   " "
   pthread_mutex_timedlock ().