]> Kevux Git Server - controller/commitdiff
Update: Switch to use fll_program_signal_check_loop() and fll_program_signal_check_si...
authorKevin Day <Kevin@kevux.org>
Fri, 2 May 2025 00:59:00 +0000 (19:59 -0500)
committerKevin Day <Kevin@kevux.org>
Fri, 2 May 2025 00:59:00 +0000 (19:59 -0500)
sources/c/program/controller/main/common/define.h
sources/c/program/controller/main/signal.c
sources/c/program/controller/main/signal.h

index 01157bb36678fd2ece4798b7169fabe77072e60e..053b1a758a9352b50e981a8c5aa5069b82540445 100644 (file)
@@ -103,6 +103,17 @@ extern "C" {
 #endif // _di_controller_signal_d_
 
 /**
+ * A macro wrapping the appropriate signal check function based on threaded/non-threaded support.
+ */
+#ifndef _di_controller_signal_check_
+  #ifdef _di_thread_support_
+    #define macro_controller_signal_check(program, state) fll_program_signal_check_loop(program, state)
+  #else
+    #define macro_controller_signal_check(program, state) fll_program_signal_check_simple(program, state)
+  #endif // _di_thread_support_
+#endif // _di_controller_signal_check_
+
+/**
  * Controller "with" codes.
  *
  * controller_with_*_d:
index 7db1558edfe00e1598ffeef10a3477a0c5783e53..f598dbdd135d16db0cf127cbc13318f21fd632de 100644 (file)
@@ -4,41 +4,6 @@
 extern "C" {
 #endif
 
-#if !defined(_di_controller_signal_check_) && defined(_di_thread_support_)
-  f_status_t controller_signal_check(controller_t * const main) {
-
-    if (!main) return F_false;
-    if (main->program.signal_received) return F_true;
-
-    if (!((++main->program.signal_check) % controller_signal_check_d)) {
-      if (F_status_set_fine(fll_program_standard_signal_received(&main->program)) == F_interrupt) {
-        main->setting.state.status = F_status_set_error(F_interrupt);
-
-        return F_true;
-      }
-
-      main->program.signal_check = 0;
-    }
-
-    return F_false;
-  }
-#endif // !defined(_di_controller_signal_check_) && defined(_di_thread_support_)
-
-#if !defined(_di_controller_signal_check_) && !defined(_di_thread_support_)
-  f_status_t controller_signal_check(controller_t * const main) {
-
-    if (!main) return F_false;
-
-    if (main->program.signal_received) {
-      main->setting.state.status = F_status_set_error(F_interrupt);
-
-      return F_true;
-    }
-
-    return F_false;
-  }
-#endif // !defined(_di_controller_signal_check_) && !defined(_di_thread_support_)
-
 #if !defined(_di_controller_signal_handler_) && !defined(_di_thread_support_)
   void controller_signal_handler(controller_t * const main) {
 
index 5ee1b6e07b9484a7f6a29a4b4272ca86b5f838b9..1c029ab192bb2b463cf95605d2427b673a3c5eab 100644 (file)
@@ -17,38 +17,6 @@ extern "C" {
 #endif
 
 /**
- * Check to see if a signal is received.
- *
- * If main.signal is non-zero, then this handles the following signals:
- *   - F_signal_abort
- *   - F_signal_broken_pipe
- *   - F_signal_hangup
- *   - F_signal_interrupt
- *   - F_signal_quit
- *   - F_signal_termination
- *
- * There is a threaded and a non-threaded version of this.
- * The non-threaded version checks periodically using controller_signal_check_d and updates main->signal_check as needed.
- * The threaded version checks the flag state which is set by a separate thread that is blocking until signal is received.
- *
- * @param main
- *   The main program and settings data.
- *
- *   This does not alter main.setting.state.status.
- *
- * @return
- *   F_true on signal received.
- *   F_false otherwise.
- *
- * @see controller_signal_handler()
- *
- * @see fll_program_standard_signal_received()
- */
-#ifndef _di_controller_signal_check_
-  extern f_status_t controller_signal_check(controller_t * const main);
-#endif // _di_controller_signal_check_
-
-/**
  * Signal handler for signals/interrupts.
  *
  * This blocks until an expected signal is recieved.