gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r12765 - gnunet/src/testing


From: gnunet
Subject: [GNUnet-SVN] r12765 - gnunet/src/testing
Date: Mon, 30 Aug 2010 20:37:51 +0200

Author: nevans
Date: 2010-08-30 20:37:51 +0200 (Mon, 30 Aug 2010)
New Revision: 12765

Modified:
   gnunet/src/testing/testing_group.c
Log:
fixing stats iteration

Modified: gnunet/src/testing/testing_group.c
===================================================================
--- gnunet/src/testing/testing_group.c  2010-08-30 16:33:42 UTC (rev 12764)
+++ gnunet/src/testing/testing_group.c  2010-08-30 18:37:51 UTC (rev 12765)
@@ -349,16 +349,6 @@
 struct StatsIterateContext
 {
   /**
-   * Handle to the statistics service.
-   */
-  struct GNUNET_STATISTICS_Handle *stats_handle;
-
-  /**
-   * Handle for getting statistics.
-   */
-  struct GNUNET_STATISTICS_GetHandle *stats_get_handle;
-
-  /**
    * Continuation to call once all stats information has been retrieved.
    */
   GNUNET_STATISTICS_Callback cont;
@@ -395,6 +385,21 @@
   struct GNUNET_TESTING_Daemon *daemon;
 };
 
+struct StatsCoreContext
+{
+  void *iter_context;
+  struct GNUNET_TESTING_Daemon *daemon;
+  /**
+   * Handle to the statistics service.
+   */
+  struct GNUNET_STATISTICS_Handle *stats_handle;
+
+  /**
+   * Handle for getting statistics.
+   */
+  struct GNUNET_STATISTICS_GetHandle *stats_get_handle;
+};
+
 /**
  * Handle to a group of GNUnet peers.
  */
@@ -2934,7 +2939,7 @@
                                     uint64_t value,
                                     int is_persistent)
 {
-  struct CoreContext *core_context = cls;
+  struct StatsCoreContext *core_context = cls;
   struct StatsIterateContext *stats_context = (struct StatsIterateContext 
*)core_context->iter_context;
 
   return stats_context->proc(stats_context->cls, &core_context->daemon->id, 
subsystem, name, value, is_persistent);
@@ -2949,7 +2954,7 @@
  */
 static void internal_stats_cont (void *cls, int success)
 {
-  struct CoreContext *core_context = cls;
+  struct StatsCoreContext *core_context = cls;
   struct StatsIterateContext *stats_context = (struct StatsIterateContext 
*)core_context->iter_context;
 
   stats_context->connected--;
@@ -2958,10 +2963,12 @@
   if (stats_context->completed == stats_context->total)
     {
       stats_context->cont(stats_context->cls, GNUNET_YES);
-      if (stats_context->stats_handle != NULL)
-        GNUNET_STATISTICS_destroy(stats_context->stats_handle, GNUNET_NO);
       GNUNET_free(stats_context);
     }
+
+  if (core_context->stats_handle != NULL)
+    GNUNET_STATISTICS_destroy(core_context->stats_handle, GNUNET_NO);
+
   GNUNET_free(core_context);
 }
 
@@ -2972,7 +2979,7 @@
 static void
 schedule_get_statistics(void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc)
 {
-  struct CoreContext *core_context = cls;
+  struct StatsCoreContext *core_context = cls;
   struct StatsIterateContext *stats_context = (struct StatsIterateContext 
*)core_context->iter_context;
 
   if (tc->reason == GNUNET_SCHEDULER_REASON_SHUTDOWN)
@@ -2994,16 +3001,16 @@
 #endif
 
       stats_context->connected++;
-      stats_context->stats_handle = 
GNUNET_STATISTICS_create(core_context->daemon->sched, "testing", 
core_context->daemon->cfg);
-      if (stats_context->stats_handle == NULL)
+      core_context->stats_handle = 
GNUNET_STATISTICS_create(core_context->daemon->sched, "testing", 
core_context->daemon->cfg);
+      if (core_context->stats_handle == NULL)
         {
           internal_stats_cont (core_context, GNUNET_NO);
           return;
         }
 
-      stats_context->stats_get_handle = 
GNUNET_STATISTICS_get(stats_context->stats_handle, NULL, NULL, 
GNUNET_TIME_relative_get_forever(), &internal_stats_cont, 
&internal_stats_callback, core_context);
-      if (stats_context->stats_get_handle == NULL)
-         internal_stats_cont (core_context, GNUNET_NO);
+      core_context->stats_get_handle = 
GNUNET_STATISTICS_get(core_context->stats_handle, NULL, NULL, 
GNUNET_TIME_relative_get_forever(), &internal_stats_cont, 
&internal_stats_callback, core_context);
+      if (core_context->stats_get_handle == NULL)
+        internal_stats_cont (core_context, GNUNET_NO);
 
     }
 }




reply via email to

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