]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Changed storeExpireNow to move expired objects to the TAIL of the LRU
authorwessels <>
Sat, 25 Jul 1998 10:47:27 +0000 (10:47 +0000)
committerwessels <>
Sat, 25 Jul 1998 10:47:27 +0000 (10:47 +0000)
list so they'll get removed by storeMaintainSwapSpace.

Similarly, it has no effect to call storeRelease from storeCleanup
because we're still in store_rebuilding state.

src/protos.h
src/store.cc
src/store_rebuild.cc
src/tools.cc

index c6fea1da16b8e3e3034dde6a8f82dcb323983a1b..2eb0983729944311daf9125dcb35d5b0c453f822 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: protos.h,v 1.242 1998/07/25 00:16:28 wessels Exp $
+ * $Id: protos.h,v 1.243 1998/07/25 04:47:29 wessels Exp $
  *
  *
  * SQUID Internet Object Cache  http://squid.nlanr.net/Squid/
@@ -983,6 +983,7 @@ extern int asnMatchIp(void *, struct in_addr);
 extern void asnInit(void);
 extern void asnFreeMemory(void);
 extern void dlinkAdd(void *data, dlink_node *, dlink_list *);
+extern void dlinkAddTail(void *data, dlink_node *, dlink_list *);
 extern void dlinkDelete(dlink_node * m, dlink_list * list);
 extern void kb_incr(kb_t *, size_t);
 extern double gb_to_double(const gb_t *);
index e8f8e36f21878e771b10e26f48db68595e907bb1..06cbdf8cc1183517a8de2de4d1644452566211af 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store.cc,v 1.433 1998/07/23 19:57:54 wessels Exp $
+ * $Id: store.cc,v 1.434 1998/07/25 04:47:27 wessels Exp $
  *
  * DEBUG: section 20    Storage Manager
  * AUTHOR: Harvest Derived
@@ -361,6 +361,8 @@ storeExpireNow(StoreEntry * e)
 {
     debug(20, 3) ("storeExpireNow: '%s'\n", storeKeyText(e->key));
     e->expires = squid_curtime;
+    dlinkDelete(m, &inmem_list);
+    dlinkAddTail(e, m, &inmem_list);
 }
 
 /* Append incoming data from a primary server to an entry. */
index d7d5cbf93eb8ad5250e5eca7248f3753f62045cf..cd48c291449f1407932bbdeae5a525855c5a85e2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: store_rebuild.cc,v 1.43 1998/07/25 03:46:12 wessels Exp $
+ * $Id: store_rebuild.cc,v 1.44 1998/07/25 04:47:28 wessels Exp $
  *
  * DEBUG: section 20    Store Rebuild Routines
  * AUTHOR: Duane Wessels
@@ -595,10 +595,10 @@ storeCleanup(void *datanotused)
        e = (StoreEntry *) link_ptr;
        if (EBIT_TEST(e->flag, ENTRY_VALIDATED))
            continue;
-       if (EBIT_TEST(e->flag, RELEASE_REQUEST)) {
-           storeRelease(e);
-           continue;
-       }
+       /*
+        * Calling storeRelease() has no effect because we're
+        * still in 'store_rebuilding' state
+        */
        if (e->swap_file_number < 0)
            continue;
        if (opt_store_doublecheck) {
index 2897f5579643db94aba2afa81bd6ed16f496fffa..627fb6373c8230171628c87130fa684731ca1d5f 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: tools.cc,v 1.165 1998/07/25 00:16:30 wessels Exp $
+ * $Id: tools.cc,v 1.166 1998/07/25 04:47:29 wessels Exp $
  *
  * DEBUG: section 21    Misc Functions
  * AUTHOR: Harvest Derived
@@ -741,6 +741,19 @@ dlinkAdd(void *data, dlink_node * m, dlink_list * list)
        list->tail = m;
 }
 
+void
+dlinkAddTail(void *data, dlink_node * m, dlink_list * list)
+{
+    m->data = data;
+    m->next = NULL;
+    m->prev = list->tail;
+    if (list->tail)
+       list->tail->next = m;
+    list->tail = m;
+    if (list->head == NULL)
+       list->head = m;
+}
+
 void
 dlinkDelete(dlink_node * m, dlink_list * list)
 {