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/nse/gnunet-service-nse.c | |
parent | 7746f68db77b9ca3c4aaca24ab2ce5253461240b (diff) | |
download | gnunet-95f9076a2139f5fb042b944a0658b6cda2fa35db.tar.gz gnunet-95f9076a2139f5fb042b944a0658b6cda2fa35db.zip |
implementing new scheduler shutdown semantics
Diffstat (limited to 'src/nse/gnunet-service-nse.c')
-rw-r--r-- | src/nse/gnunet-service-nse.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/nse/gnunet-service-nse.c b/src/nse/gnunet-service-nse.c index 608274ae1..d4098d1bc 100644 --- a/src/nse/gnunet-service-nse.c +++ b/src/nse/gnunet-service-nse.c | |||
@@ -784,7 +784,9 @@ schedule_current_round (void *cls, | |||
784 | delay = | 784 | delay = |
785 | get_transmit_delay ((peer_entry->previous_round == GNUNET_NO) ? -1 : 0); | 785 | get_transmit_delay ((peer_entry->previous_round == GNUNET_NO) ? -1 : 0); |
786 | peer_entry->transmit_task = | 786 | peer_entry->transmit_task = |
787 | GNUNET_SCHEDULER_add_delayed (delay, &transmit_task_cb, peer_entry); | 787 | GNUNET_SCHEDULER_add_delayed (delay, |
788 | &transmit_task_cb, | ||
789 | peer_entry); | ||
788 | return GNUNET_OK; | 790 | return GNUNET_OK; |
789 | } | 791 | } |
790 | 792 | ||
@@ -799,18 +801,15 @@ update_flood_message (void *cls) | |||
799 | { | 801 | { |
800 | struct GNUNET_TIME_Relative offset; | 802 | struct GNUNET_TIME_Relative offset; |
801 | unsigned int i; | 803 | unsigned int i; |
802 | const struct GNUNET_SCHEDULER_TaskContext *tc; | ||
803 | 804 | ||
804 | flood_task = NULL; | 805 | flood_task = NULL; |
805 | tc = GNUNET_SCHEDULER_get_task_context (); | ||
806 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) | ||
807 | return; | ||
808 | offset = GNUNET_TIME_absolute_get_remaining (next_timestamp); | 806 | offset = GNUNET_TIME_absolute_get_remaining (next_timestamp); |
809 | if (0 != offset.rel_value_us) | 807 | if (0 != offset.rel_value_us) |
810 | { | 808 | { |
811 | /* somehow run early, delay more */ | 809 | /* somehow run early, delay more */ |
812 | flood_task = | 810 | flood_task = |
813 | GNUNET_SCHEDULER_add_delayed (offset, &update_flood_message, NULL); | 811 | GNUNET_SCHEDULER_add_delayed (offset, |
812 | &update_flood_message, NULL); | ||
814 | return; | 813 | return; |
815 | } | 814 | } |
816 | estimate_index = (estimate_index + 1) % HISTORY_SIZE; | 815 | estimate_index = (estimate_index + 1) % HISTORY_SIZE; |
@@ -841,7 +840,8 @@ update_flood_message (void *cls) | |||
841 | NULL); | 840 | NULL); |
842 | flood_task = | 841 | flood_task = |
843 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_absolute_get_remaining | 842 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_absolute_get_remaining |
844 | (next_timestamp), &update_flood_message, | 843 | (next_timestamp), |
844 | &update_flood_message, | ||
845 | NULL); | 845 | NULL); |
846 | } | 846 | } |
847 | 847 | ||
@@ -1043,7 +1043,8 @@ update_flood_times (void *cls, | |||
1043 | } | 1043 | } |
1044 | delay = get_transmit_delay (0); | 1044 | delay = get_transmit_delay (0); |
1045 | peer_entry->transmit_task = | 1045 | peer_entry->transmit_task = |
1046 | GNUNET_SCHEDULER_add_delayed (delay, &transmit_task_cb, peer_entry); | 1046 | GNUNET_SCHEDULER_add_delayed (delay, |
1047 | &transmit_task_cb, peer_entry); | ||
1047 | return GNUNET_OK; | 1048 | return GNUNET_OK; |
1048 | } | 1049 | } |
1049 | 1050 | ||
@@ -1439,7 +1440,8 @@ core_init (void *cls, | |||
1439 | } | 1440 | } |
1440 | flood_task = | 1441 | flood_task = |
1441 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_absolute_get_remaining | 1442 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_absolute_get_remaining |
1442 | (next_timestamp), &update_flood_message, | 1443 | (next_timestamp), |
1444 | &update_flood_message, | ||
1443 | NULL); | 1445 | NULL); |
1444 | } | 1446 | } |
1445 | 1447 | ||
@@ -1560,8 +1562,8 @@ run (void *cls, | |||
1560 | } | 1562 | } |
1561 | #endif | 1563 | #endif |
1562 | 1564 | ||
1563 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &shutdown_task, | 1565 | GNUNET_SCHEDULER_add_shutdown (&shutdown_task, |
1564 | NULL); | 1566 | NULL); |
1565 | pk = GNUNET_CRYPTO_eddsa_key_create_from_configuration (cfg); | 1567 | pk = GNUNET_CRYPTO_eddsa_key_create_from_configuration (cfg); |
1566 | GNUNET_assert (NULL != pk); | 1568 | GNUNET_assert (NULL != pk); |
1567 | my_private_key = pk; | 1569 | my_private_key = pk; |