Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/share/man/man9 clarify how rw_{write,read,lock}_held() work; ...
details: https://anonhg.NetBSD.org/src/rev/f26899015196
branches: trunk
changeset: 446559:f26899015196
user: jdolecek <jdolecek%NetBSD.org@localhost>
date: Mon Dec 10 19:21:56 2018 +0000
description:
clarify how rw_{write,read,lock}_held() work; rw_write_held() actually
returns non-zero only if current lwp is the owner, the other two don't care
about owner; also warn that functions are not atomic, and thus should only
ever be used to assert that the lock is held
diffstat:
share/man/man9/rwlock.9 | 21 ++++++++++++++++-----
1 files changed, 16 insertions(+), 5 deletions(-)
diffs (48 lines):
diff -r 4734f4e54ae3 -r f26899015196 share/man/man9/rwlock.9
--- a/share/man/man9/rwlock.9 Mon Dec 10 16:28:52 2018 +0000
+++ b/share/man/man9/rwlock.9 Mon Dec 10 19:21:56 2018 +0000
@@ -1,4 +1,4 @@
-.\" $NetBSD: rwlock.9,v 1.17 2017/11/12 21:14:33 riastradh Exp $
+.\" $NetBSD: rwlock.9,v 1.18 2018/12/10 19:21:56 jdolecek Exp $
.\"
.\" Copyright (c) 2006, 2007, 2009 The NetBSD Foundation, Inc.
.\" All rights reserved.
@@ -27,7 +27,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd November 22, 2009
+.Dd December 10, 2018
.Dt RWLOCK 9
.Os
.Sh NAME
@@ -168,15 +168,26 @@
.Pp
Downgrade a lock from a write hold to a read hold.
.It Fn rw_write_held "rw"
+.Pp
+Return non-zero if write lock is held by current lwp.
+Otherwise, return zero.
.It Fn rw_read_held "rw"
+Returns non-zero if read lock is held by any lwp.
+Otherwise, return zero.
.It Fn rw_lock_held "rw"
.Pp
-Test the lock's condition and return non-zero if the lock is held
-(potentially by the current LWP) and matches the specified condition.
+Returns non-zero if either read or write lock is held by any lwp.
Otherwise, return zero.
.Pp
-These functions must never be used to make locking decisions at run time:
+Functions
+.Fn rw_write_held ,
+.Fn rw_read_held ,
+and
+.Fn rw_lock_held
+must never be used to make locking decisions at run time:
they are provided only for diagnostic purposes.
+They are also not atomic, hence they should only be used to assert
+that lock is held.
.El
.Sh PERFORMANCE CONSIDERATIONS
RW locks are subject to high cache contention on multiprocessor systems,
Home |
Main Index |
Thread Index |
Old Index