[PATCH 0/4] Introduce scoped_ignore_signal & make it thread safe
Pedro Alves
pedro@palves.net
Tue Jun 15 11:14:25 GMT 2021
For the Ctrl-C rework series I posted recently, I stared at code using
scoped_ignore_sigttou a lot, and it annoyed me that it isn't thread
safe, because it changes the signal's disposition.
Very recently, we got a new scoped_ignore_sigpipe class modelled on
scoped_ignore_sigttou, which made me want to fix this before it ever
becomes a (hard to debug) problem. I mentioned this here:
https://sourceware.org/pipermail/gdb-patches/2021-June/179958.html
This series then:
- Moves scoped_ignore_sigttou to gdbsupport/. This patch is
actually included in my Ctrl-C series too, I just borrowed it from
there.
- Introduces a scoped_ignore_signal template, to be used by both
scoped_ignore_sigpipe and scoped_ignore_sigttou.
- Makes scoped_ignore_signal thread-safe, by using sigprocmask +
sigtimedwait.
- Adds a scoped_ignore_sigpipe unit test.
You can also find this in the users/palves/scoped_ignore_signal
branch.
Pedro Alves (4):
Move scoped_ignore_sigttou to gdbsupport/
Introduce scoped_restore_signal
scoped_ignore_signal: Use sigprocmask+sigtimedwait instead of signal
Add a unit test for scoped_ignore_sigpipe
gdb/Makefile.in | 2 +-
gdb/compile/compile.c | 29 +---
gdb/inf-ptrace.c | 1 -
gdb/inflow.c | 2 +-
gdb/procfs.c | 1 -
gdb/ser-unix.c | 2 +-
.../scoped_ignore_signal-selftests.c | 125 ++++++++++++++++++
gdbsupport/scoped_ignore_signal.h | 97 ++++++++++++++
.../scoped_ignore_sigttou.h | 56 +++++---
9 files changed, 266 insertions(+), 49 deletions(-)
create mode 100644 gdb/unittests/scoped_ignore_signal-selftests.c
create mode 100644 gdbsupport/scoped_ignore_signal.h
rename gdb/inflow.h => gdbsupport/scoped_ignore_sigttou.h (51%)
base-commit: c8795e1f2f4d8617f22c3bd40dad75c75482e164
--
2.26.2
More information about the Gdb-patches
mailing list