]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Reduce stateful helpers flags.reserved to a boolean
authorHenrik Nordstrom <henrik@henriknordstrom.net>
Mon, 3 Aug 2009 10:17:22 +0000 (12:17 +0200)
committerHenrik Nordstrom <henrik@henriknordstrom.net>
Mon, 3 Aug 2009 10:17:22 +0000 (12:17 +0200)
this is further cleanup of stateful helper state. With the deferred state
now gone reserved is a boolean with only two possible states (free or reserved)

src/enums.h
src/helper.cc
src/helper.h

index 4ab1f7c6d055194486e5b58438d3bdb9ea0965a8..c3bfb0c3aa600a88f54e36347a4f621768063507 100644 (file)
@@ -373,13 +373,6 @@ typedef enum {
     S_HELPER_RELEASE
 } stateful_helper_callback_t;
 
-/* stateful helper reservation info */
-typedef enum {
-    S_HELPER_FREE,             /* available for requests */
-    S_HELPER_RESERVED          /* in a reserved state - no active request, but state data in the helper shouldn't be disturbed */
-} stateful_helper_reserve_t;
-
-
 #if SQUID_SNMP
 enum {
     SNMP_C_VIEW,
index 50cb2f30f25ce135553c74a74c7609299127f08d..fe3cda315f4ae4f04e21d6b48931e87731b810f3 100644 (file)
@@ -254,7 +254,7 @@ helperStatefulOpenServers(statefulhelper * hlp)
         helper_stateful_server *srv = cbdataAlloc(helper_stateful_server);
         srv->hIpc = hIpc;
         srv->pid = pid;
-        srv->flags.reserved = S_HELPER_FREE;
+        srv->flags.reserved = 0;
         srv->stats.submits = 0;
         srv->stats.releases = 0;
         srv->index = k;
@@ -347,7 +347,7 @@ helperStatefulSubmit(statefulhelper * hlp, const char *buf, HLPSCB * callback, v
 
     if ((buf != NULL) && lastserver) {
         debugs(84, 5, "StatefulSubmit with lastserver " << lastserver);
-        assert(lastserver->flags.reserved == S_HELPER_RESERVED);
+        assert(lastserver->flags.reserved);
         assert(!(lastserver->request));
 
         debugs(84, 5, "StatefulSubmit dispatching");
@@ -368,20 +368,17 @@ helperStatefulSubmit(statefulhelper * hlp, const char *buf, HLPSCB * callback, v
  *
  * helperStatefulReleaseServer tells the helper that whoever was
  * using it no longer needs its services.
- *
- * If the state is S_HELPER_RESERVED, then it should always
- * become S_HELPER_FREE.
  */
 void
 helperStatefulReleaseServer(helper_stateful_server * srv)
 {
     debugs(84, 3, HERE << "srv-" << srv->index << " flags.reserved = " << srv->flags.reserved);
-    if (srv->flags.reserved == S_HELPER_FREE)
+    if (!srv->flags.reserved)
         return;
 
     srv->stats.releases++;
 
-    srv->flags.reserved = S_HELPER_FREE;
+    srv->flags.reserved = 0;
     if (srv->parent->OnEmptyQueue != NULL && srv->data)
         srv->parent->OnEmptyQueue(srv->data);
 
@@ -488,7 +485,7 @@ helperStatefulStats(StoreEntry * sentry, statefulhelper * hlp, const char *label
                           srv->stats.uses,
                           srv->flags.busy ? 'B' : ' ',
                           srv->flags.closing ? 'C' : ' ',
-                          srv->flags.reserved == S_HELPER_RESERVED ? 'R' : ' ',
+                          srv->flags.reserved ? 'R' : ' ',
                           srv->flags.shutdown ? 'S' : ' ',
                           srv->request ? (srv->request->placeholder ? 'P' : ' ') : ' ',
                                   tt < 0.0 ? 0.0 : tt,
@@ -607,7 +604,7 @@ helperStatefulShutdown(statefulhelper * hlp)
             continue;
         }
 
-        if (srv->flags.reserved != S_HELPER_FREE) {
+        if (srv->flags.reserved) {
             if (shutting_down) {
                 debugs(84, 3, "helperStatefulShutdown: " << hlp->id_name << " #" << srv->index + 1 << " is RESERVED. Closing anyway.");
             }
@@ -1017,7 +1014,7 @@ helperStatefulHandleRead(int fd, char *buf, size_t len, comm_err_t flag, int xer
 
             case S_HELPER_RELEASE:     /* helper finished with */
 
-                srv->flags.reserved = S_HELPER_FREE;
+                srv->flags.reserved = 0;
 
                 if ((srv->parent->OnEmptyQueue != NULL) && (srv->data))
                     srv->parent->OnEmptyQueue(srv->data);
@@ -1028,7 +1025,7 @@ helperStatefulHandleRead(int fd, char *buf, size_t len, comm_err_t flag, int xer
 
             case S_HELPER_RESERVE:     /* 'pin' this helper for the caller */
 
-               srv->flags.reserved = S_HELPER_RESERVED;
+               srv->flags.reserved = 1;
                debugs(84, 5, "StatefulHandleRead: reserving " << hlp->id_name << " #" << srv->index + 1);
 
                 break;
@@ -1206,7 +1203,7 @@ StatefulGetFirstAvailable(statefulhelper * hlp)
         if (srv->flags.busy)
             continue;
 
-        if (srv->flags.reserved == S_HELPER_RESERVED)
+        if (srv->flags.reserved)
             continue;
 
         if (srv->flags.shutdown)
@@ -1382,7 +1379,7 @@ helperStatefulServerDone(helper_stateful_server * srv)
 {
     if (!srv->flags.shutdown) {
         helperStatefulKickQueue(srv->parent);
-    } else if (!srv->flags.closing && srv->flags.reserved == S_HELPER_FREE && !srv->flags.busy) {
+    } else if (!srv->flags.closing && srv->flags.reserved && !srv->flags.busy) {
         int wfd = srv->wfd;
         srv->wfd = -1;
         if (srv->rfd == wfd)
index d1a62a603a2b034ea89f16609b00ef811fb27832..d97a572994f48a142bd21c72b840d8b3170dbe3b 100644 (file)
@@ -159,7 +159,7 @@ struct _helper_stateful_server {
         unsigned int busy:1;
         unsigned int closing:1;
         unsigned int shutdown:1;
-        stateful_helper_reserve_t reserved;
+        unsigned int reserved:1;
     } flags;
 
     struct {