Книга: UNIX: взаимодействие процессов

Функция pthread_rwlock destroy

Функция pthread_rwlock destroy

В листинге 8.3 приведена функция pthread_rwlock_destroy, уничтожающая блокировку чтения записи после окончания работы с ней.

8-13 Прежде всего проверяется, не используется ли блокировка в данный момент, а затем вызываются соответствующие функции для уничтожения взаимного исключения и двух условных переменных.

Листинг 8.З. Функция pthread_rwlock_destroy: уничтожение блокировки чтения-записи

//my_rwlock/pthread_rwlock_destroy.с
1  #include "unpipc.h"
2  #include "pthread_rwlock.h"
3  int
4  pthread_rwlock_destroy(pthread_rwlock_t *rw)
5  {
6   if (rw->rw_magic != RW_MAGIC)
7    return(EINVAL);
8   if (rw->rw_refcount != 0 ||
9    rw->rw_nwaitreaders != 0 || rw->rw_nwaitwriters != 0)
10   return(EBUSY);
11  pthread_mutex_destroy(&rw->rw_mutex);
12  pthread_cond_destroy(&rw->rw_condreaders);
13  pthread_cond_destroy(&rw->rw_condwriters);
14  rw->rw_magic = 0;
15  return(0);
16 }

Оглавление книги


Генерация: 1.156. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз