svn commit: r267787 - stable/9/sys/rpc

Alexander Motin mav at FreeBSD.org
Mon Jun 23 13:10:50 UTC 2014


Author: mav
Date: Mon Jun 23 13:10:49 2014
New Revision: 267787
URL: http://svnweb.freebsd.org/changeset/base/267787

Log:
  MFC r267223:
  Remove st_idle variable, duplicating st_xprt.

Modified:
  stable/9/sys/rpc/svc.c
  stable/9/sys/rpc/svc.h
Directory Properties:
  stable/9/   (props changed)
  stable/9/sys/   (props changed)

Modified: stable/9/sys/rpc/svc.c
==============================================================================
--- stable/9/sys/rpc/svc.c	Mon Jun 23 13:09:49 2014	(r267786)
+++ stable/9/sys/rpc/svc.c	Mon Jun 23 13:10:49 2014	(r267787)
@@ -340,7 +340,6 @@ xprt_assignthread(SVCXPRT *xprt)
 	st = LIST_FIRST(&pool->sp_idlethreads);
 	if (st) {
 		LIST_REMOVE(st, st_ilink);
-		st->st_idle = FALSE;
 		SVC_ACQUIRE(xprt);
 		xprt->xp_thread = st;
 		st->st_xprt = xprt;
@@ -1140,7 +1139,6 @@ svc_run_internal(SVCPOOL *pool, bool_t i
 			}
 
 			LIST_INSERT_HEAD(&pool->sp_idlethreads, st, st_ilink);
-			st->st_idle = TRUE;
 			if (ismaster || (!ismaster &&
 			    pool->sp_threadcount > pool->sp_minthreads))
 				error = cv_timedwait_sig(&st->st_cond,
@@ -1148,10 +1146,8 @@ svc_run_internal(SVCPOOL *pool, bool_t i
 			else
 				error = cv_wait_sig(&st->st_cond,
 				    &pool->sp_lock);
-			if (st->st_idle) {
+			if (st->st_xprt == NULL)
 				LIST_REMOVE(st, st_ilink);
-				st->st_idle = FALSE;
-			}
 
 			/*
 			 * Reduce worker thread count when idle.

Modified: stable/9/sys/rpc/svc.h
==============================================================================
--- stable/9/sys/rpc/svc.h	Mon Jun 23 13:09:49 2014	(r267786)
+++ stable/9/sys/rpc/svc.h	Mon Jun 23 13:10:49 2014	(r267787)
@@ -295,7 +295,6 @@ typedef struct __rpc_svcthread {
 	struct __rpc_svcpool	*st_pool;
 	SVCXPRT			*st_xprt; /* transport we are processing */
 	struct svc_reqlist	st_reqs;  /* RPC requests to execute */
-	int			st_idle; /* thread is on idle list */
 	struct cv		st_cond; /* sleeping for work */
 	LIST_ENTRY(__rpc_svcthread) st_link; /* all threads list */
 	LIST_ENTRY(__rpc_svcthread) st_ilink; /* idle threads list */


More information about the svn-src-all mailing list