[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r25425 - gnunet/src/testbed
From: |
gnunet |
Subject: |
[GNUnet-SVN] r25425 - gnunet/src/testbed |
Date: |
Wed, 12 Dec 2012 16:47:31 +0100 |
Author: harsha
Date: 2012-12-12 16:47:30 +0100 (Wed, 12 Dec 2012)
New Revision: 25425
Modified:
gnunet/src/testbed/testbed_api_testbed.c
Log:
- de-duplicate
Modified: gnunet/src/testbed/testbed_api_testbed.c
===================================================================
--- gnunet/src/testbed/testbed_api_testbed.c 2012-12-12 15:32:42 UTC (rev
25424)
+++ gnunet/src/testbed/testbed_api_testbed.c 2012-12-12 15:47:30 UTC (rev
25425)
@@ -394,6 +394,30 @@
* @param tc the task context from scheduler
*/
static void
+shutdown_run (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+
+
+/**
+ * Function to shutdown now
+ *
+ * @param rc the RunContext
+ */
+static void
+shutdown_now (struct RunContext *rc)
+{
+ if (GNUNET_SCHEDULER_NO_TASK != rc->shutdown_run_task)
+ GNUNET_SCHEDULER_cancel (rc->shutdown_run_task);
+ rc->shutdown_run_task = GNUNET_SCHEDULER_add_now (&shutdown_run, rc);
+}
+
+
+/**
+ * Stops the testbed run and releases any used resources
+ *
+ * @param cls the tesbed run handle
+ * @param tc the task context from scheduler
+ */
+static void
shutdown_run (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
struct RunContext *rc = cls;
@@ -552,8 +576,7 @@
{
LOG (GNUNET_ERROR_TYPE_ERROR,
_("Linking controllers failed. Exiting"));
- GNUNET_SCHEDULER_cancel (rc->shutdown_run_task);
- rc->shutdown_run_task = GNUNET_SCHEDULER_add_now (&shutdown_run, rc);
+ shutdown_now (rc);
}
else
rc->reg_hosts++;
@@ -568,9 +591,8 @@
}
return;
default:
- GNUNET_assert (0);
- GNUNET_SCHEDULER_cancel (rc->shutdown_run_task);
- rc->shutdown_run_task = GNUNET_SCHEDULER_add_now (&shutdown_run, rc);
+ GNUNET_break (0);
+ shutdown_now (rc);
return;
}
}
@@ -583,9 +605,8 @@
rc->oc_count++;
break;
default:
- GNUNET_assert (0);
- GNUNET_SCHEDULER_cancel (rc->shutdown_run_task);
- rc->shutdown_run_task = GNUNET_SCHEDULER_add_now (&shutdown_run, rc);
+ GNUNET_break (0);
+ shutdown_now (rc);
return;
}
if (rc->oc_count == rc->num_oc)
@@ -733,8 +754,7 @@
{
LOG (GNUNET_ERROR_TYPE_WARNING,
_("Host registration failed for a host. Error: %s\n"), emsg);
- GNUNET_SCHEDULER_cancel (rc->shutdown_run_task);
- rc->shutdown_run_task = GNUNET_SCHEDULER_add_now (&shutdown_run, rc);
+ shutdown_now (rc);
return;
}
rc->register_hosts_task = GNUNET_SCHEDULER_add_now (®ister_hosts, rc);
@@ -800,8 +820,15 @@
if (status != GNUNET_OK)
{
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Testbed startup failed\n");
- return;
+ switch (rc->state)
+ {
+ case RC_INIT:
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Testbed startup failed\n");
+ return;
+ default:
+ shutdown_now (rc);
+ return;
+ }
}
GNUNET_CONFIGURATION_destroy (rc->cfg);
rc->cfg = GNUNET_CONFIGURATION_dup (cfg);
@@ -853,8 +880,7 @@
GNUNET_TESTBED_host_get_hostname (host));
else
LOG (GNUNET_ERROR_TYPE_ERROR, _("Testbed cannot be started on
localhost\n"));
- GNUNET_SCHEDULER_cancel (rc->shutdown_run_task);
- rc->shutdown_run_task = GNUNET_SCHEDULER_add_now (&shutdown_run, rc);
+ shutdown_now (rc);
return;
}
rc->reg_hosts++;
@@ -879,8 +905,7 @@
if (NULL == rc->cproc)
{
LOG (GNUNET_ERROR_TYPE_ERROR, _("Cannot start the master controller"));
- GNUNET_SCHEDULER_cancel (rc->shutdown_run_task);
- rc->shutdown_run_task = GNUNET_SCHEDULER_add_now (&shutdown_run, rc);
+ shutdown_now (rc);
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r25425 - gnunet/src/testbed,
gnunet <=