Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Sep 2014 18:37:17 +0000 (UTC)
From:      Ed Schouten <ed@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r270944 - head/sbin/hastd
Message-ID:  <201409011837.s81IbHSc086834@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ed
Date: Mon Sep  1 18:37:17 2014
New Revision: 270944
URL: http://svnweb.freebsd.org/changeset/base/270944

Log:
  Add lock annotations to the threading API used by hastd.
  
  Approved by:	pjd@

Modified:
  head/sbin/hastd/primary.c
  head/sbin/hastd/synch.h

Modified: head/sbin/hastd/primary.c
==============================================================================
--- head/sbin/hastd/primary.c	Mon Sep  1 18:34:30 2014	(r270943)
+++ head/sbin/hastd/primary.c	Mon Sep  1 18:37:17 2014	(r270944)
@@ -330,9 +330,8 @@ primary_exitx(int exitcode, const char *
 	exit(exitcode);
 }
 
-/* Expects res->hr_amp locked, returns unlocked. */
 static int
-hast_activemap_flush(struct hast_resource *res)
+hast_activemap_flush(struct hast_resource *res) __unlocks(res->hr_amp_lock)
 {
 	const unsigned char *buf;
 	size_t size;

Modified: head/sbin/hastd/synch.h
==============================================================================
--- head/sbin/hastd/synch.h	Mon Sep  1 18:34:30 2014	(r270943)
+++ head/sbin/hastd/synch.h	Mon Sep  1 18:37:17 2014	(r270944)
@@ -46,7 +46,7 @@
 #endif
 
 static __inline void
-mtx_init(pthread_mutex_t *lock)
+mtx_init(pthread_mutex_t *lock) __requires_unlocked(*lock)
 {
 	int error;
 
@@ -54,7 +54,7 @@ mtx_init(pthread_mutex_t *lock)
 	PJDLOG_ASSERT(error == 0);
 }
 static __inline void
-mtx_destroy(pthread_mutex_t *lock)
+mtx_destroy(pthread_mutex_t *lock) __requires_unlocked(*lock)
 {
 	int error;
 
@@ -62,7 +62,7 @@ mtx_destroy(pthread_mutex_t *lock)
 	PJDLOG_ASSERT(error == 0);
 }
 static __inline void
-mtx_lock(pthread_mutex_t *lock)
+mtx_lock(pthread_mutex_t *lock) __locks_exclusive(*lock)
 {
 	int error;
 
@@ -70,7 +70,7 @@ mtx_lock(pthread_mutex_t *lock)
 	PJDLOG_ASSERT(error == 0);
 }
 static __inline bool
-mtx_trylock(pthread_mutex_t *lock)
+mtx_trylock(pthread_mutex_t *lock) __trylocks_exclusive(true, *lock)
 {
 	int error;
 
@@ -79,7 +79,7 @@ mtx_trylock(pthread_mutex_t *lock)
 	return (error == 0);
 }
 static __inline void
-mtx_unlock(pthread_mutex_t *lock)
+mtx_unlock(pthread_mutex_t *lock) __unlocks(*lock)
 {
 	int error;
 
@@ -94,7 +94,7 @@ mtx_owned(pthread_mutex_t *lock)
 }
 
 static __inline void
-rw_init(pthread_rwlock_t *lock)
+rw_init(pthread_rwlock_t *lock) __requires_unlocked(*lock)
 {
 	int error;
 
@@ -102,7 +102,7 @@ rw_init(pthread_rwlock_t *lock)
 	PJDLOG_ASSERT(error == 0);
 }
 static __inline void
-rw_destroy(pthread_rwlock_t *lock)
+rw_destroy(pthread_rwlock_t *lock) __requires_unlocked(*lock)
 {
 	int error;
 
@@ -110,7 +110,7 @@ rw_destroy(pthread_rwlock_t *lock)
 	PJDLOG_ASSERT(error == 0);
 }
 static __inline void
-rw_rlock(pthread_rwlock_t *lock)
+rw_rlock(pthread_rwlock_t *lock) __locks_shared(*lock)
 {
 	int error;
 
@@ -118,7 +118,7 @@ rw_rlock(pthread_rwlock_t *lock)
 	PJDLOG_ASSERT(error == 0);
 }
 static __inline void
-rw_wlock(pthread_rwlock_t *lock)
+rw_wlock(pthread_rwlock_t *lock) __locks_exclusive(*lock)
 {
 	int error;
 
@@ -126,7 +126,7 @@ rw_wlock(pthread_rwlock_t *lock)
 	PJDLOG_ASSERT(error == 0);
 }
 static __inline void
-rw_unlock(pthread_rwlock_t *lock)
+rw_unlock(pthread_rwlock_t *lock) __unlocks(*lock)
 {
 	int error;
 
@@ -150,7 +150,7 @@ cv_init(pthread_cond_t *cv)
 	PJDLOG_ASSERT(error == 0);
 }
 static __inline void
-cv_wait(pthread_cond_t *cv, pthread_mutex_t *lock)
+cv_wait(pthread_cond_t *cv, pthread_mutex_t *lock) __requires_exclusive(*lock)
 {
 	int error;
 
@@ -159,6 +159,7 @@ cv_wait(pthread_cond_t *cv, pthread_mute
 }
 static __inline bool
 cv_timedwait(pthread_cond_t *cv, pthread_mutex_t *lock, int timeout)
+    __requires_exclusive(*lock)
 {
 	struct timespec ts;
 	int error;



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