[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r18335 - gnunet/src/testing
From: |
gnunet |
Subject: |
[GNUnet-SVN] r18335 - gnunet/src/testing |
Date: |
Sat, 26 Nov 2011 14:52:44 +0100 |
Author: grothoff
Date: 2011-11-26 14:52:44 +0100 (Sat, 26 Nov 2011)
New Revision: 18335
Modified:
gnunet/src/testing/testing_group.c
Log:
LRN: Fix dht multipeer testing crash - #1919
Modified: gnunet/src/testing/testing_group.c
===================================================================
--- gnunet/src/testing/testing_group.c 2011-11-26 13:52:09 UTC (rev 18334)
+++ gnunet/src/testing/testing_group.c 2011-11-26 13:52:44 UTC (rev 18335)
@@ -550,6 +550,12 @@
* stagger hostkey generation and peer startup.
*/
struct InternalStartContext internal_context;
+
+ /**
+ * Task ID for the queued internal_continue_startup task
+ */
+ GNUNET_SCHEDULER_TaskIdentifier startup_task;
+
};
/**
@@ -5557,6 +5563,7 @@
const struct GNUNET_SCHEDULER_TaskContext *tc)
{
struct InternalStartContext *internal_context = cls;
+ internal_context->peer->startup_task = GNUNET_SCHEDULER_NO_TASK;
if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
{
@@ -5579,7 +5586,7 @@
}
else
{
- GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply
+ internal_context->peer->startup_task = GNUNET_SCHEDULER_add_delayed
(GNUNET_TIME_relative_multiply
(GNUNET_TIME_UNIT_MILLISECONDS, 100),
&internal_continue_startup,
internal_context);
}
@@ -5887,7 +5894,7 @@
pg->starting = 0;
for (i = 0; i < pg->total; i++)
{
- GNUNET_SCHEDULER_add_now (&internal_continue_startup,
+ pg->peers[i].startup_task = GNUNET_SCHEDULER_add_now
(&internal_continue_startup,
&pg->peers[i].internal_context);
}
}
@@ -5895,7 +5902,7 @@
pg->starting = 0;
for (i = 0; i < pg->total; i++)
{
- GNUNET_SCHEDULER_add_now (&internal_continue_startup,
+ pg->peers[i].startup_task = GNUNET_SCHEDULER_add_now
(&internal_continue_startup,
&pg->peers[i].internal_context);
}
#endif
@@ -6903,6 +6910,7 @@
struct PeerShutdownContext *peer_shutdown_ctx = cls;
struct ShutdownContext *shutdown_ctx = peer_shutdown_ctx->shutdown_ctx;
unsigned int off;
+ int i;
struct OutstandingSSH *ssh_pos;
shutdown_ctx->outstanding--;
@@ -6933,6 +6941,11 @@
else
shutdown_ctx->cb (shutdown_ctx->cb_cls, NULL);
+ for (i = 0; i < shutdown_ctx->pg->total; i++)
+ {
+ if (shutdown_ctx->pg->peers[i].startup_task != GNUNET_SCHEDULER_NO_TASK)
+ GNUNET_SCHEDULER_cancel (shutdown_ctx->pg->peers[i].startup_task);
+ }
GNUNET_free (shutdown_ctx->pg->peers);
GNUNET_free_non_null (shutdown_ctx->pg->hostkey_data);
for (off = 0; off < shutdown_ctx->pg->num_hosts; off++)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r18335 - gnunet/src/testing,
gnunet <=