aboutsummaryrefslogtreecommitdiff
path: root/nscd/nscd_conf.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-10-03 21:11:37 +0000
committerUlrich Drepper <drepper@redhat.com>2004-10-03 21:11:37 +0000
commit27e828564328ee5270450729bbb6902f6f62ba47 (patch)
tree1070cd10e6352100d6a8c0aa7edfdf99e61e0e15 /nscd/nscd_conf.c
parent4401d759051714fcc016a146685f3c13bed49442 (diff)
downloadglibc-27e828564328ee5270450729bbb6902f6f62ba47.zip
glibc-27e828564328ee5270450729bbb6902f6f62ba47.tar.gz
glibc-27e828564328ee5270450729bbb6902f6f62ba47.tar.bz2
Update.
Dynamically create new threads if necessary. * nscd/connections.c (fd_ready): If no thread available for processing the request, create a new one unless the limit is reached. (start_threads): Check errors from pthread_create. * nscd/nscd.h: Declare max_nthreads. * nscd/nscd_conf.c: Parse max-nthreads entry. * nscd/nscd.conf: Add max-threads entry. * nscd/nscd_stat.c: Print current and maximum number of threads.
Diffstat (limited to 'nscd/nscd_conf.c')
-rw-r--r--nscd/nscd_conf.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/nscd/nscd_conf.c b/nscd/nscd_conf.c
index 591dea8..d21f2fc 100644
--- a/nscd/nscd_conf.c
+++ b/nscd/nscd_conf.c
@@ -184,6 +184,10 @@ nscd_parse_file (const char *fname, struct database_dyn dbs[lastdb])
if (nthreads == -1)
nthreads = MAX (atol (arg1), lastdb);
}
+ else if (strcmp (entry, "max-threads") == 0)
+ {
+ max_nthreads = MAX (atol (arg1), lastdb);
+ }
else if (strcmp (entry, "server-user") == 0)
{
if (!arg1)
@@ -282,6 +286,10 @@ cannot get current working directory: %s; disabling paranoia mode"),
}
}
+ /* Enforce sanity. */
+ if (max_nthreads < nthreads)
+ max_nthreads = nthreads;
+
/* Free the buffer. */
free (line);
/* Close configuration file. */