diff options
author | Christian Grothoff <christian@grothoff.org> | 2016-04-30 08:17:37 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2016-04-30 08:17:37 +0000 |
commit | 95f9076a2139f5fb042b944a0658b6cda2fa35db (patch) | |
tree | b0826a2a1dcf812e6b4450fe6b05d47cd53ae49d /src/rps/gnunet-service-rps_sampler.c | |
parent | 7746f68db77b9ca3c4aaca24ab2ce5253461240b (diff) | |
download | gnunet-95f9076a2139f5fb042b944a0658b6cda2fa35db.tar.gz gnunet-95f9076a2139f5fb042b944a0658b6cda2fa35db.zip |
implementing new scheduler shutdown semantics
Diffstat (limited to 'src/rps/gnunet-service-rps_sampler.c')
-rw-r--r-- | src/rps/gnunet-service-rps_sampler.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/src/rps/gnunet-service-rps_sampler.c b/src/rps/gnunet-service-rps_sampler.c index e5f6595bb..2ac6054f4 100644 --- a/src/rps/gnunet-service-rps_sampler.c +++ b/src/rps/gnunet-service-rps_sampler.c | |||
@@ -533,12 +533,8 @@ sampler_get_rand_peer (void *cls) | |||
533 | struct GetPeerCls *gpc = cls; | 533 | struct GetPeerCls *gpc = cls; |
534 | uint32_t r_index; | 534 | uint32_t r_index; |
535 | struct RPS_Sampler *sampler; | 535 | struct RPS_Sampler *sampler; |
536 | const struct GNUNET_SCHEDULER_TaskContext *tc; | ||
537 | 536 | ||
538 | gpc->get_peer_task = NULL; | 537 | gpc->get_peer_task = NULL; |
539 | tc = GNUNET_SCHEDULER_get_task_context (); | ||
540 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) | ||
541 | return; | ||
542 | sampler = gpc->req_handle->sampler; | 538 | sampler = gpc->req_handle->sampler; |
543 | 539 | ||
544 | /**; | 540 | /**; |
@@ -588,12 +584,8 @@ sampler_mod_get_rand_peer (void *cls) | |||
588 | struct RPS_SamplerElement *s_elem; | 584 | struct RPS_SamplerElement *s_elem; |
589 | struct GNUNET_TIME_Relative last_request_diff; | 585 | struct GNUNET_TIME_Relative last_request_diff; |
590 | struct RPS_Sampler *sampler; | 586 | struct RPS_Sampler *sampler; |
591 | const struct GNUNET_SCHEDULER_TaskContext *tc; | ||
592 | 587 | ||
593 | gpc->get_peer_task = NULL; | 588 | gpc->get_peer_task = NULL; |
594 | tc = GNUNET_SCHEDULER_get_task_context (); | ||
595 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) | ||
596 | return; | ||
597 | sampler = gpc->req_handle->sampler; | 589 | sampler = gpc->req_handle->sampler; |
598 | 590 | ||
599 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Single peer was requested\n"); | 591 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Single peer was requested\n"); |
@@ -607,7 +599,8 @@ sampler_mod_get_rand_peer (void *cls) | |||
607 | 599 | ||
608 | if (EMPTY == s_elem->is_empty) | 600 | if (EMPTY == s_elem->is_empty) |
609 | { | 601 | { |
610 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Sampler_mod element empty, rescheduling.\n"); | 602 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
603 | "Sampler_mod element empty, rescheduling.\n"); | ||
611 | GNUNET_assert (NULL == gpc->get_peer_task); | 604 | GNUNET_assert (NULL == gpc->get_peer_task); |
612 | gpc->get_peer_task = | 605 | gpc->get_peer_task = |
613 | GNUNET_SCHEDULER_add_delayed (sampler->max_round_interval, | 606 | GNUNET_SCHEDULER_add_delayed (sampler->max_round_interval, |
@@ -708,7 +701,8 @@ RPS_sampler_get_n_rand_peers (struct RPS_Sampler *sampler, | |||
708 | req_handle->gpc_tail, | 701 | req_handle->gpc_tail, |
709 | gpc); | 702 | gpc); |
710 | // maybe add a little delay | 703 | // maybe add a little delay |
711 | gpc->get_peer_task = GNUNET_SCHEDULER_add_now (sampler->get_peers, gpc); | 704 | gpc->get_peer_task = GNUNET_SCHEDULER_add_now (sampler->get_peers, |
705 | gpc); | ||
712 | } | 706 | } |
713 | return req_handle; | 707 | return req_handle; |
714 | } | 708 | } |