*/
static unsigned int current_round;
-
/**
* Do preconnect? (Each peer creates a tunnel to one other peer).
*/
static int do_warmup;
+/**
+ * Warmup progress.
+ */
+static unsigned int peers_warmup;
+
/**
* Flag to notify callbacks not to generate any new traffic anymore.
*/
static int test_finished;
+
+/**
+ * START THE TEST ITSELF, AS WE ARE CONNECTED TO THE MESH SERVICES.
+ *
+ * Testcase continues when the root receives confirmation of connected peers,
+ * on callback funtion ch.
+ *
+ * @param cls Closure (unsued).
+ * @param tc Task Context.
+ */
+static void
+start_test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+
+
/**
* Calculate a random delay.
*
GNUNET_assert (NULL != peer);
if (NULL == peers[n].incoming)
{
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "WARMUP %u <= %u\n",
- n, get_index (peer), channel);
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO, "WARMUP %3u: %u <= %u\n",
+ peers_warmup, n, get_index (peer));
+ peers_warmup++;
+ if (peers_warmup < peers_total)
+ return NULL;
+ test_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
+ &start_test, NULL);
return NULL;
}
GNUNET_assert (peer == peers[n].incoming);
const char *emsg)
{
long n = (long) cls;
- struct GNUNET_TIME_Relative delay;
if (NULL == pinfo || NULL != emsg)
{
return;
GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Got all IDs, starting profiler\n");
if (do_warmup)
+ {
warmup();
- delay = GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS,
- 150 * peers_total);
- test_task = GNUNET_SCHEDULER_add_delayed (delay, &start_test, NULL);
+ return; /* start_test from incoming_channel */
+ }
+ test_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
+ &start_test, NULL);
}
/**
return 1;
}
- do_warmup = (5 > argc || argv[4][0] == 'N');
+ do_warmup = (5 > argc || argv[4][0] != 'N');
ids = GNUNET_CONTAINER_multipeermap_create (2 * peers_total, GNUNET_YES);
GNUNET_assert (NULL != ids);