From cd040ba59b00ce709fa97016df9eaf733adc1ccf Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Tue, 3 Jun 2008 12:04:57 +0300 Subject: [PATCH] Add rpmsqIsCaught() for testing if a signal has been caught --- rpmio/rpmsq.c | 5 +++++ rpmio/rpmsq.h | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/rpmio/rpmsq.c b/rpmio/rpmsq.c index 160329a..6d86626 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 796ecb2..3224650 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 -- 2.7.4