gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r34192 - gnunet/src/dht


From: gnunet
Subject: [GNUnet-SVN] r34192 - gnunet/src/dht
Date: Fri, 22 Aug 2014 00:45:13 +0200

Author: supriti
Date: 2014-08-22 00:45:13 +0200 (Fri, 22 Aug 2014)
New Revision: 34192

Modified:
   gnunet/src/dht/gnunet-service-xdht_neighbours.c
   gnunet/src/dht/gnunet_dht_profiler.c
Log:
Free successor_hash_map



Modified: gnunet/src/dht/gnunet-service-xdht_neighbours.c
===================================================================
--- gnunet/src/dht/gnunet-service-xdht_neighbours.c     2014-08-21 21:42:04 UTC 
(rev 34191)
+++ gnunet/src/dht/gnunet-service-xdht_neighbours.c     2014-08-21 22:45:13 UTC 
(rev 34192)
@@ -3471,7 +3471,7 @@
     GNUNET_break_op (0);
     return GNUNET_OK;
   }
-  DEBUG("GET FOR DATA_SIZE = %lu\n",msize);
+  
   GNUNET_STATISTICS_update (GDS_stats,
                             gettext_noop
                             ("# Bytes received from other peers"), (int64_t) 
msize,

Modified: gnunet/src/dht/gnunet_dht_profiler.c
===================================================================
--- gnunet/src/dht/gnunet_dht_profiler.c        2014-08-21 21:42:04 UTC (rev 
34191)
+++ gnunet/src/dht/gnunet_dht_profiler.c        2014-08-21 22:45:13 UTC (rev 
34192)
@@ -785,6 +785,17 @@
   }
 }
 
+static int 
+hashmap_iterate_remove(void *cls, 
+                       const struct GNUNET_HashCode *key, 
+                       void *value)
+{
+  struct GNUNET_HashCode *remove_key = key; 
+  GNUNET_assert(GNUNET_YES == 
GNUNET_CONTAINER_multihashmap_remove(successor_peer_hashmap, key, value));
+  return GNUNET_YES;
+}
+
+
 static unsigned int tries;
 
 /**
@@ -814,8 +825,7 @@
   start_val =
           (struct GNUNET_HashCode *) 
GNUNET_CONTAINER_multihashmap_get(successor_peer_hashmap,
                                                 start_key);
-  val = GNUNET_new(struct GNUNET_HashCode);
-  key = GNUNET_new(struct GNUNET_HashCode);
+
   val = start_val;
   for (count = 0; count < num_peers; count++)
   {
@@ -835,12 +845,20 @@
       break;
     }
     /* If a peer has its own identity as its successor. */
-    if (0 == memcmp(&key, &val, sizeof (struct GNUNET_HashCode)))
+    if (0 == memcmp(key, val, sizeof (struct GNUNET_HashCode)))
     {
       break;
     } 
   }
   
+  GNUNET_assert(GNUNET_SYSERR != 
+          GNUNET_CONTAINER_multihashmap_iterate (successor_peer_hashmap,
+                                                 hashmap_iterate_remove,
+                                                 NULL));
+  
+  successor_peer_hashmap = GNUNET_CONTAINER_multihashmap_create (num_peers, 
+                                                                    GNUNET_NO);
+  
   if ((start_val == val) && (count == num_peers))
   {
     DEBUG("CIRCLE COMPLETED after %u tries", tries);
@@ -849,6 +867,7 @@
     //are fill atleast O(log N) and then start with the experiments.
     if(GNUNET_SCHEDULER_NO_TASK == successor_stats_task)
       start_profiling();
+    
     return;
   }
   else
@@ -859,7 +878,6 @@
                   "Maximum tries %u exceeded while checking successor TOTAL 
TRIES %u"
                   " cirle formation.  Exiting\n",
                   max_searches,tries);
-      //FIXME: FREE HASHMAP
       if (GNUNET_SCHEDULER_NO_TASK != successor_stats_task)
       {
         successor_stats_task = GNUNET_SCHEDULER_NO_TASK;
@@ -952,6 +970,8 @@
 
   GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Start collecting statistics...\n");
   GNUNET_assert(NULL != testbed_handles);
+  successor_peer_hashmap = GNUNET_CONTAINER_multihashmap_create (num_peers, 
+                                                                    GNUNET_NO);
   successor_stats_op = 
           GNUNET_TESTBED_get_statistics (num_peers, testbed_handles,
                                          "dht", NULL,
@@ -1014,8 +1034,6 @@
      struct Collect_Stat_Context *collect_stat_cls = GNUNET_new(struct 
Collect_Stat_Context);
      collect_stat_cls->service_connect_ctx = cls;
      collect_stat_cls->op = op;
-     successor_peer_hashmap = GNUNET_CONTAINER_multihashmap_create (num_peers, 
-                                                                    GNUNET_NO);
      successor_stats_task = GNUNET_SCHEDULER_add_delayed (delay,
                                                           &collect_stats,
                                                           collect_stat_cls);




reply via email to

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