]> git.eshelyaron.com Git - emacs.git/commitdiff
(sigmask) [POSIX_SIGNALS]: Always define our own
authorAndreas Schwab <schwab@suse.de>
Fri, 20 Feb 1998 13:01:10 +0000 (13:01 +0000)
committerAndreas Schwab <schwab@suse.de>
Fri, 20 Feb 1998 13:01:10 +0000 (13:01 +0000)
version that returns a sigset_t.
(sigpause) [POSIX_SIGNALS]: Unconditionally define in terms of
sigsuspend.  Don't redefine SIGEMPTYMASK.
(sys_sigpause): Don't declare.
(temp_mask): Don't declare.

src/syssignal.h

index 23a15c6c1d2960094b127fed13ce5cb6ad387058..08b989c8f13334d90b68b8a44dc88db1ee3ef858 100644 (file)
@@ -30,11 +30,13 @@ Boston, MA 02111-1307, USA.  */
 
 #define SIGEMPTYMASK (empty_mask)
 #define SIGFULLMASK (full_mask)
-extern sigset_t empty_mask, full_mask, temp_mask;
+extern sigset_t empty_mask, full_mask;
 
 /* POSIX pretty much destroys any possibility of writing sigmask as a
-   macro in standard C.  */
-#ifndef sigmask
+   macro in standard C.  We always define our own version because the
+   predefined macro in Glibc 2.1 is only provided for compatility for old
+   programs that use int as signal mask type.  */
+#undef sigmask
 #ifdef __GNUC__
 #define sigmask(SIG)                           \
   ({                                           \
@@ -49,15 +51,8 @@ extern sigset_t sys_sigmask ();
 #endif /* ! defined (__GNUC__) */
 #endif
 
-#ifndef sigpause
-#define sigpause(SIG)    sys_sigpause (SIG)
-#else
-/* If sigpause is predefined, with POSIX_SIGNALS,
-   let's assume it needs this kind of argument.
-   This is true for Glibc 2.1.  */
-#undef SIGEMPTYMASK
-#define SIGEMPTYMASK sigmask (0)
-#endif
+#undef sigpause
+#define sigpause(MASK)    sigsuspend (&(MASK))
 
 #define sigblock(SIG)    sys_sigblock (SIG)
 #define sigunblock(SIG)  sys_sigunblock (SIG)
@@ -74,7 +69,6 @@ extern sigset_t sys_sigmask ();
 typedef RETSIGTYPE (*signal_handler_t) (/*int*/);
 
 signal_handler_t sys_signal (/*int signal_number, signal_handler_t action*/);
-int      sys_sigpause   (/*sigset_t new_mask*/);
 sigset_t sys_sigblock   (/*sigset_t new_mask*/);
 sigset_t sys_sigunblock (/*sigset_t new_mask*/);
 sigset_t sys_sigsetmask (/*sigset_t new_mask*/);