Add rpmsqIsCaught() for testing if a signal has been caught
authorPanu Matilainen <pmatilai@redhat.com>
Tue, 3 Jun 2008 09:04:57 +0000 (12:04 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Tue, 3 Jun 2008 09:04:57 +0000 (12:04 +0300)
rpmio/rpmsq.c
rpmio/rpmsq.h

index 160329a..6d86626 100644 (file)
@@ -171,6 +171,11 @@ static struct rpmsig_s {
     { -1,      NULL },
 };
 
+int rpmsqIsCaught(int signum)
+{
+    return sigismember(&rpmsqCaught, signum);
+}
+
 void rpmsqAction(int signum,
                void * info, void * context)
 {
index 796ecb2..3224650 100644 (file)
@@ -54,6 +54,14 @@ struct rpmsqElem {
 extern sigset_t rpmsqCaught;
 
 /** \ingroup rpmsq
+ * Test if given signal has been caught (while signals blocked).
+ * Similar to sigismember() but operates on internal signal queue.
+ * @param signum       signal to test for
+ * @return             1 if caught, 0 if not and -1 on error
+ */
+int rpmsqIsCaught(int signum);
+
+/** \ingroup rpmsq
  * Default signal handler.
  * @param signum       signal number
  * @param info         (siginfo_t) signal info