summaryrefslogtreecommitdiff
path: root/usr/src/lib/libnisdb/nisdb_rw.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libnisdb/nisdb_rw.c')
-rw-r--r--usr/src/lib/libnisdb/nisdb_rw.c35
1 files changed, 15 insertions, 20 deletions
diff --git a/usr/src/lib/libnisdb/nisdb_rw.c b/usr/src/lib/libnisdb/nisdb_rw.c
index 71357b7b19..2e88f0dfd3 100644
--- a/usr/src/lib/libnisdb/nisdb_rw.c
+++ b/usr/src/lib/libnisdb/nisdb_rw.c
@@ -20,12 +20,11 @@
* CDDL HEADER END
*/
/*
+ * Copyright 2015 Gary Mills
* Copyright (c) 2001 by Sun Microsystems, Inc.
* All rights reserved.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <stdio.h>
#include <rpc/types.h>
#include <rpc/xdr.h>
@@ -107,8 +106,6 @@ find_reader(pthread_t id, __nisdb_rwlock_t *rw) {
int
__nisdb_rw_readlock_ok(__nisdb_rwlock_t *rw) {
int ret;
- pthread_t myself = pthread_self();
- __nisdb_rl_t *rr;
if (rw == 0)
return (EFAULT);
@@ -139,8 +136,6 @@ __nisdb_rw_readlock_ok(__nisdb_rwlock_t *rw) {
int
__nisdb_rw_force_writelock(__nisdb_rwlock_t *rw) {
int ret;
- pthread_t myself = pthread_self();
- __nisdb_rl_t *rr;
if (rw == 0 || rw->destroyed != 0)
return (ESHUTDOWN);
@@ -206,7 +201,7 @@ __nisdb_wlock_trylock(__nisdb_rwlock_t *rw, int trylock) {
*/
if (rw->reader_count > 0) {
if ((rr = find_reader(myself, rw)) != 0) {
- if (rr->count)
+ if (rr->count) {
/*
* We're already holding a read lock, so
* if the number of readers equals the number
@@ -216,7 +211,7 @@ __nisdb_wlock_trylock(__nisdb_rwlock_t *rw, int trylock) {
if (rw->reader_count ==
(rw->reader_blocked + 1))
all_readers_blocked = 1;
- else
+ } else {
/*
* We're not holding a read lock, so the
* number of readers should equal the number
@@ -225,6 +220,7 @@ __nisdb_wlock_trylock(__nisdb_rwlock_t *rw, int trylock) {
*/
if (rw->reader_count == rw->reader_blocked)
all_readers_blocked = 1;
+ }
}
}
@@ -239,11 +235,11 @@ __nisdb_wlock_trylock(__nisdb_rwlock_t *rw, int trylock) {
* - N readers, but all blocked on the mutex
*/
if (
- (rw->writer_count == 0 && rw->reader_count == 0) ||
- ((rw->writer_count == 0 || rw->writer.id == myself) &&
- (rw->reader_count == 0) ||
- (rw->reader_count == 1 &&
- rw->reader.id == myself))) {
+ (rw->writer_count == 0 && rw->reader_count == 0) ||
+ (((rw->writer_count == 0 || rw->writer.id == myself) &&
+ (rw->reader_count == 0)) ||
+ (rw->reader_count == 1 &&
+ rw->reader.id == myself))) {
break;
}
/*
@@ -648,7 +644,6 @@ __nisdb_destroy_lock(__nisdb_rwlock_t *rw) {
int ret;
pthread_t myself = pthread_self();
- __nisdb_rl_t *rr;
if (rw == 0) {
@@ -674,12 +669,12 @@ __nisdb_destroy_lock(__nisdb_rwlock_t *rw) {
* other than this thread. Also, no nested locks may be in
* effect.
*/
- if ((rw->writer_count > 0 &&
- (rw->writer.id != myself || rw->writer.count != 1) ||
- (rw->reader_count > 0 &&
- !(rw->reader_count == 1 && rw->reader.id == myself &&
- rw->reader.count == 1))) ||
- (rw->writer_count > 0 && rw->reader_count > 0)) {
+ if (((rw->writer_count > 0 &&
+ (rw->writer.id != myself || rw->writer.count != 1)) ||
+ (rw->reader_count > 0 &&
+ !(rw->reader_count == 1 && rw->reader.id == myself &&
+ rw->reader.count == 1))) ||
+ (rw->writer_count > 0 && rw->reader_count > 0)) {
#ifdef NISDB_MT_DEBUG
abort();
#endif /* NISDB_MT_DEBUG */