-help seaspider some more
[oweals/gnunet.git] / src / hostlist / test_gnunet_daemon_hostlist_learning.c
index ed03ebfdc945afa75b32f8703ee126afea191b4c..5fcbd538b826391224581ba4b1450352a12217f3 100644 (file)
@@ -111,12 +111,12 @@ shutdown_testcase ()
   }
   if (NULL != adv_peer.stats)
   {
-    GNUNET_STATISTICS_destroy (adv_peer.stats);
+    GNUNET_STATISTICS_destroy (adv_peer.stats, GNUNET_NO);
     adv_peer.stats = NULL;
   }
   if (NULL != learn_peer.stats)
   {
-    GNUNET_STATISTICS_destroy (learn_peer.stats);
+    GNUNET_STATISTICS_destroy (learn_peer.stats, GNUNET_NO);
     learn_peer.stats = NULL;
   }
   if (check_task != GNUNET_SCHEDULER_NO_TASK)
@@ -156,7 +156,7 @@ shutdown_testcase ()
     GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");
   if (GNUNET_OS_process_wait (adv_peer.arm_proc) != GNUNET_OK)
     GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "waitpid");
-  GNUNET_OS_process_close (adv_peer.arm_proc);
+  GNUNET_OS_process_destroy (adv_peer.arm_proc);
   adv_peer.arm_proc = NULL;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Killing hostlist client ARM process.\n");
@@ -164,7 +164,7 @@ shutdown_testcase ()
     GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");
   if (GNUNET_OS_process_wait (learn_peer.arm_proc) != GNUNET_OK)
     GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "waitpid");
-  GNUNET_OS_process_close (learn_peer.arm_proc);
+  GNUNET_OS_process_destroy (learn_peer.arm_proc);
   learn_peer.arm_proc = NULL;
 #endif
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shutdown complete....\n");
@@ -191,6 +191,14 @@ process_downloads_done (void *cls, int success)
 }
 
 
+static void
+do_shutdown (void *cls,
+            const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  shutdown_testcase ();
+}
+
+
 static int
 process_downloads (void *cls, const char *subsystem, const char *name,
                    uint64_t value, int is_persistent)
@@ -201,7 +209,9 @@ process_downloads (void *cls, const char *subsystem, const char *name,
                 "Peer has successfully downloaded advertised URI\n");
     learned_hostlist_downloaded = GNUNET_YES;
     if ((learned_hostlist_saved == GNUNET_YES) && (adv_sent == GNUNET_YES))
-      shutdown_testcase ();
+    {
+      GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
+    }
   }
   return GNUNET_OK;
 }