aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--nscd/nscd.h3
-rw-r--r--nscd/nscd_stat.c5
3 files changed, 15 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index d8d0321b6a..0562bdd02b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,13 @@
2003-04-27 Ulrich Drepper <drepper@redhat.com>
+ * 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.
+
* locale/programs/locale.c (show_info): Use '\177' instead of CHAR_MAX.
* Makerules ($(common-objpfx)shlib.lds): Don't use PROVIDE to
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;