From signal(2)
The behavior of signal() varies across UNIX versions, and has also var‐
ied historically across different versions of Linux. Avoid its use:
use sigaction(2) instead. See Portability below.
Replaced signal() with sigaction() in progress.c
Signed-off-by: Jeremiah Mahler <redacted>
---
progress.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/progress.c b/progress.c
index 261314e..24df263 100644
--- a/progress.c
+++ b/progress.c
@@ -66,8 +66,12 @@ static void set_progress_signal(void)
static void clear_progress_signal(void)
{
struct itimerval v = {{0,},};
+ struct sigaction sa;
+
+ memset(&sa, 0, sizeof(sa));
+ sa.sa_handler = SIG_IGN;
setitimer(ITIMER_REAL, &v, NULL);
- signal(SIGALRM, SIG_IGN);
+ sigaction(SIGALRM, &sa, 0);
progress_update = 0;
}
--
2.0.0.rc4.6.g127602c