--------------------- PatchSet 5433 Date: 2002/10/22 19:52:32 Author: serassio Branch: cygwin Tag: (none) Log: Merged latest win32 changes from nt branch Members: include/util.h:1.4.20.4->1.4.20.5 src/ufscommon.c:1.2.12.1->1.2.12.2 src/fs/awin32/aiops.c:1.1.2.6->1.1.2.7 Index: squid/include/util.h =================================================================== RCS file: /cvsroot/squid-sf//squid/include/util.h,v retrieving revision 1.4.20.4 retrieving revision 1.4.20.5 diff -u -r1.4.20.4 -r1.4.20.5 --- squid/include/util.h 13 Apr 2002 18:55:47 -0000 1.4.20.4 +++ squid/include/util.h 22 Oct 2002 19:52:32 -0000 1.4.20.5 @@ -1,5 +1,5 @@ /* - * $Id: util.h,v 1.4.20.4 2002/04/13 18:55:47 serassio Exp $ + * $Id: util.h,v 1.4.20.5 2002/10/22 19:52:32 serassio Exp $ * * AUTHOR: Harvest Derived * @@ -68,7 +68,6 @@ extern char *xstrdup(const char *); extern char *xstrndup(const char *, size_t); extern const char *xstrerror(void); -extern const char *xbstrerror(int); extern int tvSubMsec(struct timeval, struct timeval); extern int tvSubUsec(struct timeval, struct timeval); extern double tvSubDsec(struct timeval, struct timeval); Index: squid/src/ufscommon.c =================================================================== RCS file: /cvsroot/squid-sf//squid/src/Attic/ufscommon.c,v retrieving revision 1.2.12.1 retrieving revision 1.2.12.2 diff -u -r1.2.12.1 -r1.2.12.2 --- squid/src/ufscommon.c 20 Oct 2002 13:46:16 -0000 1.2.12.1 +++ squid/src/ufscommon.c 22 Oct 2002 19:52:33 -0000 1.2.12.2 @@ -1,5 +1,5 @@ /* - * $Id: ufscommon.c,v 1.2.12.1 2002/10/20 13:46:16 serassio Exp $ + * $Id: ufscommon.c,v 1.2.12.2 2002/10/22 19:52:33 serassio Exp $ * * DEBUG: section 47 Store Directory Routines * AUTHOR: Duane Wessels @@ -1280,6 +1280,8 @@ int commonUfsDirIs(SwapDir * sd) { + if (strncmp(sd->type, "awin32", 6) == 0) + return 1; if (strncmp(sd->type, "aufs", 4) == 0) return 1; if (strncmp(sd->type, "diskd", 5) == 0) Index: squid/src/fs/awin32/aiops.c =================================================================== RCS file: /cvsroot/squid-sf//squid/src/fs/awin32/Attic/aiops.c,v retrieving revision 1.1.2.6 retrieving revision 1.1.2.7 diff -u -r1.1.2.6 -r1.1.2.7 --- squid/src/fs/awin32/aiops.c 20 Oct 2002 13:46:20 -0000 1.1.2.6 +++ squid/src/fs/awin32/aiops.c 22 Oct 2002 19:52:34 -0000 1.1.2.7 @@ -1,5 +1,5 @@ /* - * $Id: aiops.c,v 1.1.2.6 2002/10/20 13:46:20 serassio Exp $ + * $Id: aiops.c,v 1.1.2.7 2002/10/22 19:52:34 serassio Exp $ * * DEBUG: section 43 AIOPS * AUTHOR: Stewart Forster @@ -276,7 +276,7 @@ /* Create threads and get them to sit in their wait loop */ squidaio_thread_pool = memPoolCreate("aio_thread", sizeof(squidaio_thread_t)); - assert (NUMTHREADS); + assert(NUMTHREADS); for (i = 0; i < NUMTHREADS; i++) { threadp = memPoolAlloc(squidaio_thread_pool); threadp->status = _THREAD_STARTING; @@ -490,46 +490,31 @@ request->resultp->_data = request; /* Play some tricks with the request_queue2 queue */ request->next = NULL; - if (!request_queue2.head) { - /* If queue2 is empty, insert into queue 1 and try to "push" the queue - If the "push" fails, queue it via queue2 */ - if (WaitForSingleObject(request_queue.mutex, 0) == WAIT_OBJECT_0) { - /* Normal path */ - *request_queue.tailp = request; - request_queue.tailp = &request->next; - if (!SetEvent(request_queue.cond)) - fatal("couldn't push queue\n"); - if (!ReleaseMutex(request_queue.mutex)) { - /* unexpected error */ - fatal("couldn't push queue\n"); - } - Sleep(0); - } else { - /* Oops, the request queue is blocked, use request_queue2 */ - *request_queue2.tailp = request; - request_queue2.tailp = &request->next; - } - } else { - /* Secondary path. We have blocked requests to deal with */ - /* add the request to the chain */ - *request_queue2.tailp = request; - if (WaitForSingleObject(request_queue.mutex, 0)==WAIT_OBJECT_0) { - /* Ok, the queue is no longer blocked */ + if (WaitForSingleObject(request_queue.mutex, 0) == WAIT_OBJECT_0) { + if (request_queue2.head) { + /* Grab blocked requests */ *request_queue.tailp = request_queue2.head; - request_queue.tailp = &request->next; - if (!SetEvent(request_queue.cond)) - fatal("couldn't push queue\n"); - if (!ReleaseMutex(request_queue.mutex)) { - /* unexpected error */ - fatal("couldn't push queue\n"); - } - Sleep(0); + request_queue.tailp = request_queue2.tailp; + } + /* Enqueue request */ + *request_queue.tailp = request; + request_queue.tailp = &request->next; + if (!SetEvent(request_queue.cond)) + fatal("couldn't push queue\n"); + if (!ReleaseMutex(request_queue.mutex)) { + /* unexpected error */ + fatal("couldn't push queue\n"); + } + Sleep(0); + if (request_queue2.head) { + /* Clear queue of blocked requests */ request_queue2.head = NULL; request_queue2.tailp = &request_queue2.head; - } else { - /* still blocked, bump the blocked request chain */ - request_queue2.tailp = &request->next; } + } else { + /* Oops, the request queue is blocked, use request_queue2 */ + *request_queue2.tailp = request; + request_queue2.tailp = &request->next; } if (request_queue2.head) { static int filter = 0;