-only trigger check config if we actually need it
[oweals/gnunet.git] / src / fs / gnunet-fs-profiler.c
index 69433346f95a1c786dc57c212610dcf0d013b455..cfbe57bbdbca4a40b9295900e33fd1d41203afe5 100644 (file)
@@ -105,7 +105,7 @@ process_stats (void *cls,
 
 
 /**
- * Task run on timeout to terminate.  Triggers printing out
+ * Task run on shutdown to terminate.  Triggers printing out
  * all statistics.
  *
  * @param cls NULL
@@ -113,7 +113,11 @@ process_stats (void *cls,
 static void
 terminate_task (void *cls)
 {
-  terminate_taskid = NULL;
+  if (NULL != terminate_taskid)
+  {
+    GNUNET_SCHEDULER_cancel (terminate_taskid);
+    terminate_taskid = NULL;
+  }
   GNUNET_TESTBED_get_statistics (0, NULL,
                                  NULL, NULL,
                                 &process_stats,
@@ -122,6 +126,20 @@ terminate_task (void *cls)
 }
 
 
+/**
+ * Task run on timeout to terminate.  Triggers printing out
+ * all statistics.
+ *
+ * @param cls NULL
+ */
+static void
+timeout_task (void *cls)
+{
+  terminate_taskid = NULL;
+  GNUNET_SCHEDULER_shutdown ();
+}
+
+
 /**
  * Signature of a main function for a testcase.
  *
@@ -148,11 +166,10 @@ test_master (void *cls,
 
   if (0 != timeout.rel_value_us)
     terminate_taskid = GNUNET_SCHEDULER_add_delayed (timeout,
-                                                    &terminate_task, NULL);
-  else
-    terminate_taskid = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
-                                                    &terminate_task,
+                                                    &timeout_task,
                                                     NULL);
+   GNUNET_SCHEDULER_add_shutdown (&terminate_task,
+                                 NULL);
 }