pthread_rwlock_t lock; // Initialization lock = PTHREAD_RWLOCK_INITIALIZER; // or pthread_rwlock_init(&lock, 0); // Then int pthread_rwlock_rdlock(&lock); int pthread_rwlock_wrlock(&lock); int pthread_rwlock_unlock(&lock);