]> Savannah Git Hosting - gnulib.git/commitdiff
fatal-signal: Add function that lists the fatal signals.
authorBruno Haible <bruno@clisp.org>
Sat, 16 Mar 2019 16:48:06 +0000 (17:48 +0100)
committerBruno Haible <bruno@clisp.org>
Sat, 16 Mar 2019 16:48:06 +0000 (17:48 +0100)
* lib/fatal-signal.h (get_fatal_signals): New declaration.
* lib/fatal-signal.c (get_fatal_signals): New function.

ChangeLog
lib/fatal-signal.c
lib/fatal-signal.h

index 544d69d4b7fd30b2b80f29b448f5fff390e6637a..519e85326b8fd8391571a90b0e3e0b2c1391b1ff 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
index 1fe31d10f59bb15a6a343cbbc84c0770c97251b3..3bf43b087bd54cbce55d53f1fceee3ad82834c60 100644 (file)
@@ -284,3 +284,20 @@ unblock_fatal_signals (void)
   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;
+  }
+}
index a2e60d3a629a31a017c91d6707e5018231524307..22680e7ca425581ffa5480f3ac3d769a9d4a5693 100644 (file)
@@ -71,6 +71,12 @@ extern void block_fatal_signals (void);
 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