summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rpmio/rpmsq.c5
-rw-r--r--rpmio/rpmsq.h8
2 files changed, 13 insertions, 0 deletions
diff --git a/rpmio/rpmsq.c b/rpmio/rpmsq.c
index 160329aa6..6d866266f 100644
--- a/rpmio/rpmsq.c
+++ b/rpmio/rpmsq.c
@@ -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)
{
diff --git a/rpmio/rpmsq.h b/rpmio/rpmsq.h
index 796ecb203..32246508e 100644
--- a/rpmio/rpmsq.h
+++ b/rpmio/rpmsq.h
@@ -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