]> git.scottworley.com Git - tattlekey/commitdiff
client: Extract set_send_alarm()
authorScott Worley <scottworley@scottworley.com>
Tue, 10 Oct 2023 04:29:10 +0000 (21:29 -0700)
committerScott Worley <scottworley@scottworley.com>
Wed, 11 Oct 2023 01:49:11 +0000 (18:49 -0700)
client/tattlekey.c

index f5306c28b8130dffceeef916951202f7d71b5b8f..c600448cdb590cf56ace165347b09ce8d127bcd0 100644 (file)
@@ -55,6 +55,14 @@ static void time_to_send(uint _) {
   queue_try_add_ignoring_errors(&queue, &e);
 }
 
   queue_try_add_ignoring_errors(&queue, &e);
 }
 
+void set_send_alarm(int alarm, uint32_t now, uint32_t next_act_time) {
+  uint32_t sleep_duration = next_act_time - now;
+  if (hardware_alarm_set_target(alarm,
+                                make_timeout_time_ms(sleep_duration * 1000)))
+    signal_error_by_blinking();
+  return;
+}
+
 void service_sleeps(int alarm, send_t *sleeping_sends, pheap_t *sleeps_heap) {
   hardware_alarm_cancel(alarm);
 
 void service_sleeps(int alarm, send_t *sleeping_sends, pheap_t *sleeps_heap) {
   hardware_alarm_cancel(alarm);
 
@@ -64,10 +72,7 @@ void service_sleeps(int alarm, send_t *sleeping_sends, pheap_t *sleeps_heap) {
     if (act_time == -1)
       return;
     if (act_time > now) {
     if (act_time == -1)
       return;
     if (act_time > now) {
-      uint32_t sleep_duration = act_time - now;
-      if (hardware_alarm_set_target(
-              alarm, make_timeout_time_ms(sleep_duration * 1000)))
-        signal_error_by_blinking();
+      set_send_alarm(alarm, now, act_time);
       return;
     }
     pheap_node_id_t i = ph_remove_head(sleeps_heap, false);
       return;
     }
     pheap_node_id_t i = ph_remove_head(sleeps_heap, false);