aboutsummaryrefslogtreecommitdiff
path: root/src/nse/gnunet-service-nse.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2016-04-30 08:17:37 +0000
committerChristian Grothoff <christian@grothoff.org>2016-04-30 08:17:37 +0000
commit95f9076a2139f5fb042b944a0658b6cda2fa35db (patch)
treeb0826a2a1dcf812e6b4450fe6b05d47cd53ae49d /src/nse/gnunet-service-nse.c
parent7746f68db77b9ca3c4aaca24ab2ce5253461240b (diff)
downloadgnunet-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.c24
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;