about summary refs log tree commit diff
path: root/nscd
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-04-28 03:40:26 +0000
committerUlrich Drepper <drepper@redhat.com>2003-04-28 03:40:26 +0000
commita16e35856aaedbb02fd1b6c55afc12994dd639b6 (patch)
treea0c8d6d3387beaa60c64d013e585697bfb18d319 /nscd
parent0fdb4f42e49b92035f8531f086647e30da169693 (diff)
downloadglibc-a16e35856aaedbb02fd1b6c55afc12994dd639b6.tar.gz
glibc-a16e35856aaedbb02fd1b6c55afc12994dd639b6.tar.xz
glibc-a16e35856aaedbb02fd1b6c55afc12994dd639b6.zip
Update.
	* nscd/connections.c (client_queued): New variable.
	(nscd_run): Revamp the loop.  Don't call poll except for cleanup
	threads.  Keep track of the number of delays caused because of busy
	worker threads.
	* nscd/nscd.h: Declare client_queued.
	* nscd/nscd_stat.c: Transmit and print client_queued information.
Diffstat (limited to 'nscd')
-rw-r--r--nscd/nscd.h3
-rw-r--r--nscd/nscd_stat.c5
2 files changed, 8 insertions, 0 deletions
diff --git a/nscd/nscd.h b/nscd/nscd.h
index 89ac777273..73c94a5035 100644
--- a/nscd/nscd.h
+++ b/nscd/nscd.h
@@ -109,6 +109,9 @@ extern const char *server_user;
 /* Time the server was started.  */
 extern time_t start_time;
 
+/* Number of times clients had to wait.  */
+extern unsigned long int client_queued;
+
 /* Prototypes for global functions.  */
 
 /* nscd.c */
diff --git a/nscd/nscd_stat.c b/nscd/nscd_stat.c
index d55ca74bcd..7cfde982f6 100644
--- a/nscd/nscd_stat.c
+++ b/nscd/nscd_stat.c
@@ -61,6 +61,7 @@ struct statdata
   char version[sizeof (compilation)];
   int debug_level;
   time_t runtime;
+  unsigned long int client_queued;
   int ndbs;
   struct dbstat dbs[lastdb];
 };
@@ -75,6 +76,7 @@ send_stats (int fd, struct database dbs[lastdb])
   memcpy (data.version, compilation, sizeof (compilation));
   data.debug_level = debug_level;
   data.runtime = time (NULL) - start_time;
+  data.client_queued = client_queued;
   data.ndbs = lastdb;
 
   for (cnt = 0; cnt < lastdb; ++cnt)
@@ -175,6 +177,9 @@ receive_print_stats (void)
   else
     printf (_("            %2lus  server runtime\n"), diff);
 
+  printf (_("%15lu  number of times clients had to wait\n"),
+	  data.client_queued);
+
   for (i = 0; i < lastdb; ++i)
     {
       unsigned long int hit = data.dbs[i].poshit + data.dbs[i].neghit;