-only trigger check config if we actually need it
[oweals/gnunet.git] / src / fs / gnunet-fs-profiler.c
index 2fadff35d6d6bffff4e5b4ff195275b6ad0fde61..cfbe57bbdbca4a40b9295900e33fd1d41203afe5 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     Copyright (C) 2012 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2012 GNUnet e.V.
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -105,17 +105,19 @@ 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
- * @param tc unused
  */
 static void
-terminate_task (void *cls,
-               const struct GNUNET_SCHEDULER_TaskContext *tc)
+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,
@@ -124,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.
  *
@@ -150,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);
 }