From: Lasse Collin Date: Wed, 2 Jun 2010 14:46:58 +0000 (+0300) Subject: Adjust SA_RESTART workaround. X-Git-Tag: v5.0.0~91 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e89d987056cee7d4e279be3ef3a6cc690bfc0e6d;p=xz Adjust SA_RESTART workaround. I want to get a bug report if something else than DJGPP lacks SA_RESTART. --- 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