]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/commit
MFC 236768,252209,253047:
authorjhb <jhb@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 2 Oct 2013 18:45:37 +0000 (18:45 +0000)
committerjhb <jhb@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 2 Oct 2013 18:45:37 +0000 (18:45 +0000)
commit0366ce15955b2f4d0b82e2b5c82a365d20755906
treee08531ee6e2df1d99237ded88a80914c380eed1d
parent3c4b6d2fc75b2007724dcfb3f594078229901040
MFC 236768,252209,253047:
Several improvements to rmlock(9).  Many of these are based on patches
provided by Isilon.
- Add an rm_assert() supporting various lock assertions similar to other
  locking primitives.  Because rmlocks track readers the assertions are
  always fully accurate unlike rw_assert() and sx_assert().
- Flesh out the lock class methods for rmlocks to support sleeping via
  condvars and rm_sleep() (but only while holding write locks), rmlock
  details in 'show lock' in DDB, and the lc_owner method used by
  dtrace.
- Add an internal destroyed cookie so that API functions can assert
  that an rmlock is not destroyed.
- Make use of rm_assert() to add various assertions to the API (e.g.
  to assert locks are held when an unlock routine is called).
- Give RM_SLEEPABLE locks their own lock class and always use the
  rmlock's own lock_object with WITNESS.
- Various updates to the manpage.

git-svn-id: svn://svn.freebsd.org/base/stable/9@256001 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
share/man/man9/Makefile
share/man/man9/rmlock.9
sys/kern/kern_cpuset.c
sys/kern/kern_rmlock.c
sys/kern/subr_lock.c
sys/sys/_rmlock.h
sys/sys/cpuset.h
sys/sys/lock.h
sys/sys/rmlock.h