-ensure stats queues do not grow too big
[oweals/gnunet.git] / src / testing / gnunet-testing.c
index a79e836c73180505076f646e871746ef77b70171..07f1560cb9bcf0c164f93f5f4acee5da7dbd7eb0 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2001, 2002, 2004, 2005, 2006, 2007, 2009 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007, 2009 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
@@ -14,8 +14,8 @@
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 
 /**
@@ -76,7 +76,7 @@ static char *tmpfilename;
 /**
  * Task identifier of the task that waits for stdin.
  */
-static GNUNET_SCHEDULER_TaskIdentifier tid;
+static struct GNUNET_SCHEDULER_Task *tid;
 
 /**
  * Peer started for '-r'.
@@ -197,20 +197,19 @@ create_hostkeys (const unsigned int no)
  * Removes the temporary file.
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-cleanup (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+cleanup (void *cls)
 {
   if (NULL != tmpfilename)
   {
     if (0 != UNLINK (tmpfilename))
       GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING, "unlink", tmpfilename);
   }
-  if (GNUNET_SCHEDULER_NO_TASK != tid)
+  if (NULL != tid)
   {
     GNUNET_SCHEDULER_cancel (tid);
-    tid = GNUNET_SCHEDULER_NO_TASK;
+    tid = NULL;
   }
   if (NULL != fh)
   {
@@ -224,17 +223,13 @@ cleanup (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
  * Called whenever we can read stdin non-blocking
  *
  * @param cls unused
- * @param tc scheduler context
  */
 static void
-stdin_cb (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+stdin_cb (void *cls)
 {
   int c;
 
-  tid = GNUNET_SCHEDULER_NO_TASK;
-  if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
-    return;
-  GNUNET_assert (0 != (GNUNET_SCHEDULER_REASON_READ_READY & tc->reason));
+  tid = NULL;
   c = getchar ();
   switch (c)
   {
@@ -258,7 +253,8 @@ stdin_cb (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
     fprintf (stderr, _("Unknown command, use 'q' to quit or 'r' to restart peer\n"));
     break;
   }
-  tid = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, fh,
+  tid = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
+                                       fh,
                                         &stdin_cb, NULL);
 }
 
@@ -291,9 +287,10 @@ testing_main (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg,
   }
   printf("ok\n%s\n", tmpfilename);
   fflush(stdout);
-  GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &cleanup, NULL);
+  GNUNET_SCHEDULER_add_shutdown (&cleanup, NULL);
   fh = GNUNET_DISK_get_handle_from_native (stdin);
-  tid = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, fh,
+  tid = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
+                                       fh,
                                         &stdin_cb, NULL);
 }