From: <jgd...@us...> - 2003-11-16 15:23:24
|
Update of /cvsroot/aolserver/aolserver/nsd In directory sc8-pr-cvs1:/tmp/cvs-serv2326/nsd Modified Files: server.c Log Message: Removed Conn pre-alloc and maxconns option. Index: server.c =================================================================== RCS file: /cvsroot/aolserver/aolserver/nsd/server.c,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** server.c 6 Mar 2003 19:39:10 -0000 1.27 --- server.c 16 Nov 2003 15:04:43 -0000 1.28 *************** *** 301,304 **** --- 301,307 ---- servPtr->limits.maxpost = 256 * 1024; /* 256k */ } + if (!Ns_ConfigGetInt(path, "connsperthread", &servPtr->limits.connsperthread)) { + servPtr->limits.connsperthread = 0; /* Unlimited */ + } /* *************** *** 526,531 **** { ConnPool *poolPtr; ! Conn *connBufPtr, *connPtr; ! int i, n, maxconns; char *path; Ns_Set *set; --- 529,533 ---- { ConnPool *poolPtr; ! int i; char *path; Ns_Set *set; *************** *** 553,575 **** poolPtr->nextPtr = servPtr->pools.firstPtr; servPtr->pools.firstPtr = poolPtr; - - /* - * Pre-allocate all available connection structures to avoid having - * to repeatedly allocate and free them at run time and to ensure there - * is a per-set maximum number of simultaneous connections to handle - * before NsQueueConn begins to return NS_ERROR. - */ - - if (!Ns_ConfigGetInt(path, "maxconnections", &maxconns)) { - maxconns = 100; - } - connBufPtr = ns_calloc((size_t) maxconns, sizeof(Conn)); - for (n = 0; n < maxconns - 1; ++n) { - connPtr = &connBufPtr[n]; - connPtr->nextPtr = &connBufPtr[n+1]; - } - connBufPtr[n].nextPtr = NULL; - poolPtr->queue.freePtr = &connBufPtr[0]; - if (!Ns_ConfigGetInt(path, "minthreads", &poolPtr->threads.min)) { poolPtr->threads.min = 0; --- 555,558 ---- *************** *** 581,584 **** --- 564,570 ---- poolPtr->threads.timeout = 120; } + if (!Ns_ConfigGetInt(path, "maxconns", &poolPtr->threads.maxconns)) { + poolPtr->threads.maxconns = servPtr->limits.connsperthread; + } /* *************** *** 589,598 **** */ - if (poolPtr->threads.max > maxconns) { - Ns_Log(Warning, "serv: cannot have more maxthreads than maxconns: " - "%d max threads adjusted down to %d max connections", - poolPtr->threads.max, maxconns); - poolPtr->threads.max = maxconns; - } if (poolPtr->threads.min > poolPtr->threads.max) { Ns_Log(Warning, "serv: cannot have more minthreads than maxthreads: " --- 575,578 ---- *************** *** 610,633 **** if (!Ns_ConfigGetInt(path, "threadtimeout", &poolPtr->threads.timeout)) { poolPtr->threads.timeout = 120; - } - - /* - * Determine the minimum and maximum number of threads, adjusting the - * values as needed. The threadtimeout value is the maximum number of - * seconds a thread will wait for a connection before exiting if the - * current number of threads is above the minimum. - */ - - if (poolPtr->threads.max > maxconns) { - Ns_Log(Warning, "serv: cannot have more maxthreads than maxconns: " - "%d max threads adjusted down to %d max connections", - poolPtr->threads.max, maxconns); - poolPtr->threads.max = maxconns; - } - if (poolPtr->threads.min > poolPtr->threads.max) { - Ns_Log(Warning, "serv: cannot have more minthreads than maxthreads: " - "%d min threads adjusted down to %d max threads", - poolPtr->threads.min, poolPtr->threads.max); - poolPtr->threads.min = poolPtr->threads.max; } } --- 590,593 ---- |