From: Vlad S. <ser...@us...> - 2006-01-18 02:27:03
|
Update of /cvsroot/naviserver/naviserver/nsd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16652/nsd Modified Files: driver.c nsd.h queue.c sched.c task.c tcljob.c Log Message: See ChangeLog Index: sched.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/sched.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** sched.c 10 Jun 2005 17:58:39 -0000 1.2 --- sched.c 18 Jan 2006 02:26:53 -0000 1.3 *************** *** 657,661 **** { Event *ePtr; ! char name[20], idle[20]; time_t now; --- 657,661 ---- { Event *ePtr; ! char idle[20]; time_t now; *************** *** 678,683 **** --nIdleThreads; Ns_MutexUnlock(&lock); ! sprintf(name, "-sched:%u-", ePtr->id); ! Ns_ThreadSetName(name); (*ePtr->proc) (ePtr->arg, (int)ePtr->id); Ns_ThreadSetName(idle); --- 678,682 ---- --nIdleThreads; Ns_MutexUnlock(&lock); ! Ns_ThreadSetName("-sched:%u-", ePtr->id); (*ePtr->proc) (ePtr->arg, (int)ePtr->id); Ns_ThreadSetName(idle); Index: nsd.h =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/nsd.h,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** nsd.h 16 Jan 2006 04:29:57 -0000 1.45 --- nsd.h 18 Jan 2006 02:26:53 -0000 1.46 *************** *** 364,368 **** int writersize; /* Maximum content size when to use writer thread. */ unsigned int loggingFlags; /* Logging control flags */ - } Driver; --- 364,367 ---- Index: tcljob.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/tcljob.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** tcljob.c 12 Jun 2005 14:42:44 -0000 1.6 --- tcljob.c 18 Jan 2006 02:26:53 -0000 1.7 *************** *** 1057,1061 **** Tcl_Interp *interp; Job *jobPtr; - char buf[100]; CONST char *err; Queue *queuePtr; --- 1057,1060 ---- *************** *** 1064,1070 **** Ns_WaitForStartup(); Ns_MutexLock(&tp.queuelock); ! snprintf(buf, 100, "-ns_job_%x-", tp.nextThreadId++); ! Ns_ThreadSetName(buf); ! Ns_Log(Notice, "Starting thread: %s", buf); while (1) { ++tp.nidle; --- 1063,1068 ---- Ns_WaitForStartup(); Ns_MutexLock(&tp.queuelock); ! Ns_ThreadSetName("-ns_job_%x-", tp.nextThreadId++); ! Ns_Log(Notice, "Starting thread: -ns_job_%x-", tp.nextThreadId); while (1) { ++tp.nidle; Index: task.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/task.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** task.c 4 Jan 2006 10:15:52 -0000 1.1 --- task.c 18 Jan 2006 02:26:53 -0000 1.2 *************** *** 781,788 **** struct pollfd *pfds; Ns_Time now, *timeoutPtr; - char name[NAME_SIZE+10]; ! sprintf(name, "task:%s", queuePtr->name); ! Ns_ThreadSetName(name); Ns_Log(Notice, "starting"); --- 781,786 ---- struct pollfd *pfds; Ns_Time now, *timeoutPtr; ! Ns_ThreadSetName("task:%s", queuePtr->name); Ns_Log(Notice, "starting"); Index: queue.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/queue.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** queue.c 2 Oct 2005 22:39:06 -0000 1.7 --- queue.c 18 Jan 2006 02:26:53 -0000 1.8 *************** *** 522,526 **** Ns_Time wait, *timePtr; unsigned int id; - Ns_DString ds; int status, cpt, ncons; char *p, *path; --- 522,525 ---- *************** *** 535,546 **** id = poolPtr->threads.nextid++; Ns_MutexUnlock(&servPtr->pools.lock); ! Ns_DStringInit(&ds); ! Ns_DStringVarAppend(&ds, "-conn:", servPtr->server, NULL); ! if (poolPtr->pool != NULL) { ! Ns_DStringVarAppend(&ds, ":", poolPtr->pool, NULL); ! } ! Ns_DStringPrintf(&ds, ":%d", id); ! Ns_ThreadSetName(ds.string); ! Ns_DStringFree(&ds); /* --- 534,540 ---- id = poolPtr->threads.nextid++; Ns_MutexUnlock(&servPtr->pools.lock); ! ! p = (poolPtr->pool != NULL && *poolPtr->pool ? poolPtr->pool : 0); ! Ns_ThreadSetName("-conn:%s%s%s:%d", servPtr->server, p ? ":" : "", p ? p : "", id); /* Index: driver.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/driver.c,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** driver.c 17 Jan 2006 23:21:06 -0000 1.33 --- driver.c 18 Jan 2006 02:26:53 -0000 1.34 *************** *** 166,171 **** static Sock *spoolerSockPtr = NULL; /* List of spooled Sock structures. */ - static int writerThreads = 1; /* Number of writer threads to run. */ static Ns_Mutex writerLock; /* Lock around writer queues. */ static WriterQueue *firstQueuePtr = NULL; /* List of writer threads. */ static WriterQueue *curQueuePtr = NULL; /* Current writer thread */ --- 166,171 ---- static Sock *spoolerSockPtr = NULL; /* List of spooled Sock structures. */ static Ns_Mutex writerLock; /* Lock around writer queues. */ + static int writerThreads = 0; /* Number of writer threads to run. */ static WriterQueue *firstQueuePtr = NULL; /* List of writer threads. */ static WriterQueue *curQueuePtr = NULL; /* Current writer thread */ *************** *** 407,410 **** --- 407,412 ---- if (!Ns_ConfigBool(path, "spooler", NS_TRUE)) { spoolerDisabled = 1; + } else { + Ns_Log(Notice, "%s: enable spooler thread for uploads >= %d bytes", module, drvPtr->uploadsize); } *************** *** 416,419 **** --- 418,422 ---- if (writerThreads > 0) { drvPtr->writersize = Ns_ConfigIntRange(path, "writersize", 1024*1024, 1024*1024, INT_MAX); + Ns_Log(Notice, "%s: enable %d writer thread(s) for downloads >= %d bytes", module, writerThreads, drvPtr->writersize); for (i = 0; i < writerThreads; i++) { WriterQueue *queuePtr = ns_calloc(1, sizeof(WriterQueue)); *************** *** 690,696 **** Ns_MutexUnlock(&queuePtr->lock); if (status != NS_OK) { ! Ns_Log(Warning, "writer: %d: timeout waiting for shutdown", queuePtr->id); } else { ! Ns_Log(Notice, "writer: %d: shutdown complete", queuePtr->id); queuePtr->thread = NULL; ns_sockclose(queuePtr->pipe[0]); --- 693,699 ---- Ns_MutexUnlock(&queuePtr->lock); if (status != NS_OK) { ! Ns_Log(Warning, "writer%d: timeout waiting for shutdown", queuePtr->id); } else { ! Ns_Log(Notice, "writer%d: shutdown complete", queuePtr->id); queuePtr->thread = NULL; ns_sockclose(queuePtr->pipe[0]); *************** *** 2258,2262 **** struct iovec vbuf; ! Ns_ThreadSetName("-writer-"); /* --- 2261,2265 ---- struct iovec vbuf; ! Ns_ThreadSetName("-writer%d-", queuePtr->id); /* *************** *** 2265,2272 **** */ ! Ns_Log(Notice, "writer: %d: accepting connections", queuePtr->id); ! writePtr = NULL; Ns_GetTime(&now); stopping = 0; pfds[0].fd = queuePtr->pipe[0]; pfds[0].events = POLLIN; --- 2268,2275 ---- */ ! Ns_Log(Notice, "writer%d: accepting connections", queuePtr->id); Ns_GetTime(&now); stopping = 0; + writePtr = NULL; pfds[0].fd = queuePtr->pipe[0]; pfds[0].events = POLLIN; *************** *** 2418,2421 **** --- 2421,2426 ---- int trigger = 0; + Ns_Log(Notice, "Writer: check %d %d %d %d", writerThreads, nsend,connPtr->drvPtr->writersize,(conn->flags & NS_CONN_WRITE_CHUNKED)); + if (writerThreads == 0 || nsend < connPtr->drvPtr->writersize || |