aboutsummaryrefslogtreecommitdiff
path: root/src/testbed/testbed_api_testbed.c
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2012-10-12 10:11:18 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2012-10-12 10:11:18 +0000
commit3d8584c8536df1b2fa89a6033b25617c56d211bc (patch)
tree5dc2c1bff789b7b05628f70a9e6182a7ef428e64 /src/testbed/testbed_api_testbed.c
parent8b083c2faf322cd87e30d7049bac9d8da5a423ed (diff)
downloadgnunet-3d8584c8536df1b2fa89a6033b25617c56d211bc.tar.gz
gnunet-3d8584c8536df1b2fa89a6033b25617c56d211bc.zip
tolerate stopped peers while shutting down testbed_run
Diffstat (limited to 'src/testbed/testbed_api_testbed.c')
-rw-r--r--src/testbed/testbed_api_testbed.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/testbed/testbed_api_testbed.c b/src/testbed/testbed_api_testbed.c
index 9a97dec26..2e597e2eb 100644
--- a/src/testbed/testbed_api_testbed.c
+++ b/src/testbed/testbed_api_testbed.c
@@ -428,6 +428,26 @@ shutdown_run_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
428 if (NULL != rc->peers) 428 if (NULL != rc->peers)
429 { 429 {
430 rc->peer_count = 0; 430 rc->peer_count = 0;
431 /* Check if some peers are stopped */
432 for (peer = 0; peer < rc->num_peers; peer++)
433 {
434 if (PS_STOPPED != rc->peers[peer]->state)
435 break;
436 }
437 if (peer == rc->num_peers)
438 {
439 /* All peers are stopped */
440 rc->state = RC_PEERS_STOPPED;
441 for (peer = 0; peer < rc->num_peers; peer++)
442 {
443 dll_op = GNUNET_malloc (sizeof (struct DLLOperation));
444 dll_op->op = GNUNET_TESTBED_peer_destroy (rc->peers[peer]);
445 GNUNET_CONTAINER_DLL_insert_tail (rc->dll_op_head, rc->dll_op_tail,
446 dll_op);
447 }
448 return;
449 }
450 /* Some peers are stopped */
431 for (peer = 0; peer < rc->num_peers; peer++) 451 for (peer = 0; peer < rc->num_peers; peer++)
432 { 452 {
433 if (PS_STARTED != rc->peers[peer]->state) 453 if (PS_STARTED != rc->peers[peer]->state)