+2022-11-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ Prefer "kill -INT" to killing with a number
+ * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK):
+ * tests/test-login_tty.c (main):
+ * tests/test-pthread_sigmask1.c (main):
+ * tests/test-sigprocmask.c (main):
+ Prefer "kill -INT" to "kill -N" where N is SIGINT’s value.
+ Don’t assume pid_t fits in int.
+
2022-11-25 Bruno Haible <bruno@clisp.org>
In 'trap' commands, prefer symbolic to numeric signal names.
LIBS="$LIBS $LIBMULTITHREAD"])
AC_RUN_IFELSE(
[AC_LANG_SOURCE([[
+#include <limits.h>
#include <pthread.h>
#include <signal.h>
#include <stdio.h>
int main ()
{
sigset_t set;
- int pid = getpid ();
+ pid_t pid = getpid ();
char command[80];
+ if (LONG_MAX < pid)
+ return 6;
signal (SIGINT, sigint_handler);
sigemptyset (&set);
sigaddset (&set, SIGINT);
if (!(pthread_sigmask (SIG_BLOCK, &set, NULL) == 0))
return 1;
- sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, pid);
+ sprintf (command, "sh -c 'sleep 1; kill -INT %ld' &", (long) pid);
if (!(system (command) == 0))
return 2;
sleep (2);
abort ();
for (fd = 0; fd < 3; fd++)
{
- int sid = tcgetsid (fd);
+ pid_t sid = tcgetsid (fd);
if (!(sid == -1 ? errno == ENOSYS : sid == getpid ()))
abort ();
}
SIGNATURE_CHECK (pthread_sigmask, int, (int, const sigset_t *, sigset_t *));
#include <errno.h>
+#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
main (int argc, char *argv[])
{
sigset_t set;
- int pid = getpid ();
+ pid_t pid = getpid ();
char command[80];
+ if (LONG_MAX < pid)
+ {
+ fputs ("Skipping test: pid too large\n", stderr);
+ return 77;
+ }
+
signal (SIGINT, sigint_handler);
sigemptyset (&set);
ASSERT (pthread_sigmask (SIG_BLOCK, &set, NULL) == 0);
/* Request a SIGINT signal from outside. */
- sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, pid);
+ sprintf (command, "sh -c 'sleep 1; kill -INT %ld' &", (long) pid);
ASSERT (system (command) == 0);
/* Wait. */
SIGNATURE_CHECK (sigprocmask, int, (int, const sigset_t *, sigset_t *));
#include <errno.h>
+#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
pid_t pid = getpid ();
char command[80];
- if (sizeof (int) < sizeof pid && 0x7fffffff < pid)
+ if (LONG_MAX < pid)
{
fputs ("Skipping test: pid too large\n", stderr);
return 77;
ASSERT (sigprocmask (SIG_BLOCK, &set, NULL) == 0);
/* Request a SIGINT signal from outside. */
- sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, (int) pid);
+ sprintf (command, "sh -c 'sleep 1; kill -INT %ld' &", (long) pid);
ASSERT (system (command) == 0);
/* Wait. */