From: Stephen D. <sd...@us...> - 2006-01-07 22:26:39
|
Update of /cvsroot/naviserver/naviserver/nsd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29551/nsd Modified Files: driver.c Log Message: * nsd/driver.c (DriverThread): Add Push() macro to clarify list processing of sockets and drivers. Index: driver.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/driver.c,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** driver.c 12 Nov 2005 20:50:33 -0000 1.26 --- driver.c 7 Jan 2006 22:26:31 -0000 1.27 *************** *** 93,96 **** --- 93,97 ---- static void SockTimeout(Sock *sockPtr, Ns_Time *nowPtr, int timeout); static int SetServer(Sock *sockPtr); + #define Push(x, xs) ((x)->nextPtr = (xs), (xs) = (x)) /* *************** *** 721,729 **** nextDrvPtr = drvPtr->nextPtr; if (drvPtr->sock != INVALID_SOCKET) { ! drvPtr->nextPtr = activeDrvPtr; ! activeDrvPtr = drvPtr; } else { ! drvPtr->nextPtr = firstDrvPtr; ! firstDrvPtr = drvPtr; } drvPtr = nextDrvPtr; --- 722,728 ---- nextDrvPtr = drvPtr->nextPtr; if (drvPtr->sock != INVALID_SOCKET) { ! Push(drvPtr, activeDrvPtr); } else { ! Push(drvPtr, firstDrvPtr); } drvPtr = nextDrvPtr; *************** *** 826,831 **** SockRelease(sockPtr, Reason_CloseTimeout); } else { ! sockPtr->nextPtr = closePtr; ! closePtr = sockPtr; } sockPtr = nextPtr; --- 825,829 ---- SockRelease(sockPtr, Reason_CloseTimeout); } else { ! Push(sockPtr, closePtr); } sockPtr = nextPtr; *************** *** 845,850 **** SockRelease(sockPtr, Reason_ReadTimeout); } else { ! sockPtr->nextPtr = readPtr; ! readPtr = sockPtr; } } else { --- 843,847 ---- SockRelease(sockPtr, Reason_ReadTimeout); } else { ! Push(sockPtr, readPtr); } } else { *************** *** 868,873 **** case SOCK_MORE: SockTimeout(sockPtr, &now, sockPtr->drvPtr->recvwait); ! sockPtr->nextPtr = readPtr; ! readPtr = sockPtr; break; case SOCK_READY: --- 865,869 ---- case SOCK_MORE: SockTimeout(sockPtr, &now, sockPtr->drvPtr->recvwait); ! Push(sockPtr, readPtr); break; case SOCK_READY: *************** *** 875,880 **** SockRelease(sockPtr, Reason_ServerReject); } else { ! sockPtr->nextPtr = waitPtr; ! waitPtr = sockPtr; } break; --- 871,875 ---- SockRelease(sockPtr, Reason_ServerReject); } else { ! Push(sockPtr, waitPtr); } break; *************** *** 903,908 **** nextPtr = sockPtr->nextPtr; if (waitPtr != NULL || !NsQueueConn(sockPtr, &now)) { ! sockPtr->nextPtr = waitPtr; ! waitPtr = sockPtr; } sockPtr = nextPtr; --- 898,902 ---- nextPtr = sockPtr->nextPtr; if (waitPtr != NULL || !NsQueueConn(sockPtr, &now)) { ! Push(sockPtr, waitPtr); } sockPtr = nextPtr; *************** *** 926,932 **** * Add this driver to the temporary idle list. */ ! ! drvPtr->nextPtr = idleDrvPtr; ! idleDrvPtr = drvPtr; } else { --- 920,925 ---- * Add this driver to the temporary idle list. */ ! ! Push(drvPtr, idleDrvPtr); } else { *************** *** 935,941 **** * Add this driver to the temporary accepted list. */ ! ! drvPtr->nextPtr = acceptDrvPtr; ! acceptDrvPtr = drvPtr; /* --- 928,933 ---- * Add this driver to the temporary accepted list. */ ! ! Push(drvPtr, acceptDrvPtr); /* *************** *** 948,953 **** } else { if (!NsQueueConn(sockPtr, &now)) { ! sockPtr->nextPtr = waitPtr; ! waitPtr = sockPtr; } } --- 940,944 ---- } else { if (!NsQueueConn(sockPtr, &now)) { ! Push(sockPtr, waitPtr); } } *************** *** 958,963 **** SockTimeout(sockPtr, &now, sockPtr->drvPtr->recvwait); ! sockPtr->nextPtr = readPtr; ! readPtr = sockPtr; } } --- 949,953 ---- SockTimeout(sockPtr, &now, sockPtr->drvPtr->recvwait); ! Push(sockPtr, readPtr); } } *************** *** 973,983 **** while ((drvPtr = acceptDrvPtr) != NULL) { acceptDrvPtr = drvPtr->nextPtr; ! drvPtr->nextPtr = activeDrvPtr; ! activeDrvPtr = drvPtr; } while ((drvPtr = idleDrvPtr) != NULL) { idleDrvPtr = drvPtr->nextPtr; ! drvPtr->nextPtr = activeDrvPtr; ! activeDrvPtr = drvPtr; } } --- 963,971 ---- while ((drvPtr = acceptDrvPtr) != NULL) { acceptDrvPtr = drvPtr->nextPtr; ! Push(drvPtr, activeDrvPtr); } while ((drvPtr = idleDrvPtr) != NULL) { idleDrvPtr = drvPtr->nextPtr; ! Push(drvPtr, activeDrvPtr); } } *************** *** 1004,1009 **** if (sockPtr->keep) { SockTimeout(sockPtr, &now, sockPtr->drvPtr->keepwait); ! sockPtr->nextPtr = readPtr; ! readPtr = sockPtr; } else { if (shutdown(sockPtr->sock, 1) != 0) { --- 992,996 ---- if (sockPtr->keep) { SockTimeout(sockPtr, &now, sockPtr->drvPtr->keepwait); ! Push(sockPtr, readPtr); } else { if (shutdown(sockPtr->sock, 1) != 0) { *************** *** 1011,1016 **** } else { SockTimeout(sockPtr, &now, sockPtr->drvPtr->closewait); ! sockPtr->nextPtr = closePtr; ! closePtr = sockPtr; } } --- 998,1002 ---- } else { SockTimeout(sockPtr, &now, sockPtr->drvPtr->closewait); ! Push(sockPtr, closePtr); } } *************** *** 1029,1034 **** drvPtr->sock = INVALID_SOCKET; } ! drvPtr->nextPtr = firstDrvPtr; ! firstDrvPtr = drvPtr; } } --- 1015,1019 ---- drvPtr->sock = INVALID_SOCKET; } ! Push(drvPtr, firstDrvPtr); } } |