Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 02 Jul 2012 13:09:57 +0000
From:      gmiller@FreeBSD.org
To:        svn-soc-all@FreeBSD.org
Subject:   socsvn commit: r238803 - in soc2012/gmiller/locking-head: . lib/libwitness
Message-ID:  <20120702130957.12C9C106567E@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gmiller
Date: Mon Jul  2 13:09:56 2012
New Revision: 238803
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=238803

Log:
   r238820@FreeBSD-dev:  root | 2012-06-29 15:18:48 -0500
   Add rwlock wrappers.

Modified:
  soc2012/gmiller/locking-head/   (props changed)
  soc2012/gmiller/locking-head/lib/libwitness/wrappers.c

Modified: soc2012/gmiller/locking-head/lib/libwitness/wrappers.c
==============================================================================
--- soc2012/gmiller/locking-head/lib/libwitness/wrappers.c	Mon Jul  2 13:09:47 2012	(r238802)
+++ soc2012/gmiller/locking-head/lib/libwitness/wrappers.c	Mon Jul  2 13:09:56 2012	(r238803)
@@ -32,6 +32,15 @@
 int	_pthread_mutex_timedlock(pthread_mutex_t *mutex,
 				 const struct timespec *ts);
 int	_pthread_mutex_unlock(pthread_mutex_t *mutex);
+int	_pthread_rwlock_rdlock(pthread_rwlock_t *mutex);
+int	_pthread_rwlock_tryrdlock(pthread_rwlock_t *mutex);
+int	_pthread_rwlock_timedrdlock(pthread_rwlock_t *mutex,
+				    const struct timespec *ts);
+int	_pthread_rwlock_wrlock(pthread_rwlock_t *mutex);
+int	_pthread_rwlock_trywrlock(pthread_rwlock_t *mutex);
+int	_pthread_rwlock_timedwrlock(pthread_rwlock_t *mutex,
+				    const struct timespec *ts);
+int	_pthread_rwlock_unlock(pthread_rwlock_t *mutex);
 
 pthread_mutex_t witness_mtx = PTHREAD_MUTEX_INITIALIZER;
 
@@ -86,3 +95,94 @@
 
 	return (ret);
 }
+
+int
+pthread_rwlock_rdlock(pthread_rwlock_t *rwlock)
+{
+	int ret;
+
+	ret = _pthread_rwlock_rdlock(rwlock);
+	if (ret == 0) {
+		add_lock(rwlock);
+	}
+
+	return (ret);
+}
+
+int
+pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock)
+{
+	int ret;
+
+	ret = _pthread_rwlock_tryrdlock(rwlock);
+	if (ret == 0) {
+		add_lock(rwlock);
+	}
+
+	return (ret);
+}
+
+int
+pthread_rwlock_timedrdlock(pthread_rwlock_t *rwlock, const struct timespec *ts)
+{
+	int ret;
+
+	ret = _pthread_rwlock_timedrdlock(rwlock, ts);
+	if (ret == 0) {
+		add_lock(rwlock);
+	}
+
+	return (ret);
+}
+
+int
+pthread_rwlock_wrlock(pthread_rwlock_t *rwlock)
+{
+	int ret;
+
+	ret = _pthread_rwlock_wrlock(rwlock);
+	if (ret == 0) {
+		add_lock(rwlock);
+	}
+
+	return (ret);
+}
+
+int
+pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock)
+{
+	int ret;
+
+	ret = _pthread_rwlock_trywrlock(rwlock);
+	if (ret == 0) {
+		add_lock(rwlock);
+	}
+
+	return (ret);
+}
+
+int
+pthread_rwlock_timedwrlock(pthread_rwlock_t *rwlock, const struct timespec *ts)
+{
+	int ret;
+
+	ret = _pthread_rwlock_timedwrlock(rwlock, ts);
+	if (ret == 0) {
+		add_lock(rwlock);
+	}
+
+	return (ret);
+}
+
+int
+pthread_rwlock_unlock(pthread_rwlock_t *rwlock)
+{
+	int ret;
+
+	ret = _pthread_rwlock_unlock(rwlock);
+	if (ret == 0) {
+		remove_lock(rwlock);
+	}
+
+	return (ret);
+}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120702130957.12C9C106567E>