From owner-svn-src-head@FreeBSD.ORG Mon Sep 1 18:37:18 2014 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 416B7AE8; Mon, 1 Sep 2014 18:37:18 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2CE971FEE; Mon, 1 Sep 2014 18:37:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id s81IbIWT086836; Mon, 1 Sep 2014 18:37:18 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id s81IbHSc086834; Mon, 1 Sep 2014 18:37:17 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201409011837.s81IbHSc086834@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Mon, 1 Sep 2014 18:37:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r270944 - head/sbin/hastd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Sep 2014 18:37:18 -0000 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;