changeset 40237:b1386ce84ff5

fatal-signal: Add function that lists the fatal signals. * lib/fatal-signal.h (get_fatal_signals): New declaration. * lib/fatal-signal.c (get_fatal_signals): New function.
author Bruno Haible <bruno@clisp.org>
date Sat, 16 Mar 2019 17:48:06 +0100
parents e3496deebf30
children 3ac749aa0041
files ChangeLog lib/fatal-signal.c lib/fatal-signal.h
diffstat 3 files changed, 29 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Mar 14 23:54:28 2019 +0100
+++ b/ChangeLog	Sat Mar 16 17:48:06 2019 +0100
@@ -1,3 +1,9 @@
+2019-03-16  Bruno Haible  <bruno@clisp.org>
+
+	fatal-signal: Add function that lists the fatal signals.
+	* lib/fatal-signal.h (get_fatal_signals): New declaration.
+	* lib/fatal-signal.c (get_fatal_signals): New function.
+
 2019-03-14  Bruno Haible  <bruno@clisp.org>
 
 	isatty: Make it return true in Cygwin consoles on native Windows.
--- a/lib/fatal-signal.c	Thu Mar 14 23:54:28 2019 +0100
+++ b/lib/fatal-signal.c	Sat Mar 16 17:48:06 2019 +0100
@@ -284,3 +284,20 @@
   init_fatal_signal_set ();
   sigprocmask (SIG_UNBLOCK, &fatal_signal_set, NULL);
 }
+
+
+unsigned int
+get_fatal_signals (int signals[64])
+{
+  init_fatal_signal_set ();
+
+  {
+    int *p = signals;
+    size_t i;
+
+    for (i = 0; i < num_fatal_signals; i++)
+      if (fatal_signals[i] >= 0)
+        *p++ = fatal_signals[i];
+    return p - signals;
+  }
+}
--- a/lib/fatal-signal.h	Thu Mar 14 23:54:28 2019 +0100
+++ b/lib/fatal-signal.h	Sat Mar 16 17:48:06 2019 +0100
@@ -71,6 +71,12 @@
 extern void unblock_fatal_signals (void);
 
 
+/* Return the list of signals that block_fatal_signals/unblock_fatal_signals
+   would block or unblock.
+   Fills signals[0..count-1] and returns count.  */
+extern unsigned int get_fatal_signals (int signals[64]);
+
+
 #ifdef __cplusplus
 }
 #endif