diff options
author | Sree Harsha Totakura <totakura@in.tum.de> | 2012-10-12 10:11:18 +0000 |
---|---|---|
committer | Sree Harsha Totakura <totakura@in.tum.de> | 2012-10-12 10:11:18 +0000 |
commit | 3d8584c8536df1b2fa89a6033b25617c56d211bc (patch) | |
tree | 5dc2c1bff789b7b05628f70a9e6182a7ef428e64 /src/testbed/testbed_api_testbed.c | |
parent | 8b083c2faf322cd87e30d7049bac9d8da5a423ed (diff) | |
download | gnunet-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.c | 20 |
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) |