aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/xz/message.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/xz/message.c b/src/xz/message.c
index 19734e5b..ad93573a 100644
--- a/src/xz/message.c
+++ b/src/xz/message.c
@@ -142,19 +142,19 @@ message_init(void)
*/
#ifdef SIGALRM
- // At least DJGPP lacks SA_RESTART. It's not essential for us (the
- // rest of the code can handle interrupted system calls), so just
- // define it zero.
-# ifndef SA_RESTART
+ // DJGPP lacks SA_RESTART, but it shouldn't give EINTR
+ // in most places either.
+# if defined(__DJGPP__) && !defined(SA_RESTART)
# define SA_RESTART 0
# endif
+
// Establish the signal handlers which set a flag to tell us that
// progress info should be updated. Since these signals don't
- // require any quick action, we set SA_RESTART.
+ // require any quick action, we set SA_RESTART. That way we don't
+ // need to block them either in signals_block() to keep stdio
+ // functions from getting EINTR.
static const int sigs[] = {
-#ifdef SIGALRM
SIGALRM,
-#endif
#ifdef SIGINFO
SIGINFO,
#endif