Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 May 2012 09:30:38 +0000 (UTC)
From:      David Xu <davidxu@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r235218 - head/lib/libthr/thread
Message-ID:  <201205100930.q4A9UcWI026597@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: davidxu
Date: Thu May 10 09:30:37 2012
New Revision: 235218
URL: http://svn.freebsd.org/changeset/base/235218

Log:
  Create a common function lookup() to search a chan, this eliminates
  redundant SC_LOOKUP() calling.

Modified:
  head/lib/libthr/thread/thr_sleepq.c

Modified: head/lib/libthr/thread/thr_sleepq.c
==============================================================================
--- head/lib/libthr/thread/thr_sleepq.c	Thu May 10 09:10:31 2012	(r235217)
+++ head/lib/libthr/thread/thr_sleepq.c	Thu May 10 09:30:37 2012	(r235218)
@@ -94,19 +94,23 @@ _sleepq_unlock(void *wchan)
 	THR_LOCK_RELEASE(curthread, &sc->sc_lock);
 }
 
-struct sleepqueue *
-_sleepq_lookup(void *wchan)
+static inline struct sleepqueue *
+lookup(struct sleepqueue_chain *sc, void *wchan)
 {
-	struct sleepqueue_chain *sc;
 	struct sleepqueue *sq;
 
-	sc = SC_LOOKUP(wchan);
 	LIST_FOREACH(sq, &sc->sc_queues, sq_hash)
 		if (sq->sq_wchan == wchan)
 			return (sq);
 	return (NULL);
 }
 
+struct sleepqueue *
+_sleepq_lookup(void *wchan)
+{
+	return (lookup(SC_LOOKUP(wchan), wchan));
+}
+
 void
 _sleepq_add(void *wchan, struct pthread *td)
 {
@@ -114,7 +118,7 @@ _sleepq_add(void *wchan, struct pthread 
 	struct sleepqueue *sq;
 
 	sc = SC_LOOKUP(wchan);
-	sq = _sleepq_lookup(wchan);
+	sq = lookup(sc, wchan);
 	if (sq != NULL) {
 		SLIST_INSERT_HEAD(&sq->sq_freeq, td->sleepqueue, sq_flink);
 	} else {



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