gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r25978 - gnunet/src/testbed


From: gnunet
Subject: [GNUnet-SVN] r25978 - gnunet/src/testbed
Date: Fri, 1 Feb 2013 16:04:49 +0100

Author: harsha
Date: 2013-02-01 16:04:49 +0100 (Fri, 01 Feb 2013)
New Revision: 25978

Modified:
   gnunet/src/testbed/gnunet-service-testbed_cache.c
Log:
- fix

Modified: gnunet/src/testbed/gnunet-service-testbed_cache.c
===================================================================
--- gnunet/src/testbed/gnunet-service-testbed_cache.c   2013-02-01 14:49:19 UTC 
(rev 25977)
+++ gnunet/src/testbed/gnunet-service-testbed_cache.c   2013-02-01 15:04:49 UTC 
(rev 25978)
@@ -238,6 +238,11 @@
    * The id of the peer this entry corresponds to
    */
   unsigned int peer_id;
+
+  /**
+   * Is this entry in LRU cache queue?
+   */
+  unsigned int in_lru;
 };
 
 
@@ -309,7 +314,7 @@
   struct ConnectNotifyContext *ctxt;
   
   GNUNET_assert (0 == entry->demand);
-  if ((NULL != entry->next) || (NULL != entry->prev))
+  if (GNUNET_YES == entry->in_lru)
   {
     GNUNET_assert (0 < lru_cache_size);
     GNUNET_CONTAINER_DLL_remove (lru_cache_head, lru_cache_tail, entry);
@@ -695,11 +700,13 @@
   entry = cache_lookup (&key);
   if (NULL != entry)
   {
-    if (0 == entry->demand)
+    if (GNUNET_YES == entry->in_lru)
     {
+      GNUNET_assert (0 == entry->demand);
       GNUNET_assert (0 < lru_cache_size);
       GNUNET_CONTAINER_DLL_remove (lru_cache_head, lru_cache_tail, entry);
       lru_cache_size--;
+      entry->in_lru = GNUNET_NO;
     }
     switch (cgh->type)
     {
@@ -859,9 +866,10 @@
   }
   GNUNET_free (cgh);  
   if (0 == entry->demand)
-  {
+  {    
     GNUNET_CONTAINER_DLL_insert_tail (lru_cache_head, lru_cache_tail, entry);
     lru_cache_size++;
+    entry->in_lru = GNUNET_YES;
     if (lru_cache_size > lru_cache_threshold_size)
       close_handles (lru_cache_head);
   }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]