Introduce scoped_restore_signal
authorPedro Alves <pedro@palves.net>
Thu, 17 Jun 2021 15:16:54 +0000 (16:16 +0100)
committerPedro Alves <pedro@palves.net>
Thu, 17 Jun 2021 15:22:11 +0000 (16:22 +0100)
commit6a7f1c20e82c349a2d4c977a27319e895e8ca284
tree6210ff7bd225b3fcefd8d5b9047cfefffbdca2be
parent965febe599ab3a5f9fa17a7aaed4dd714f265ecd
Introduce scoped_restore_signal

We currently have scoped_restore_sigttou and scoped_restore_sigpipe
doing basically the same thing -- temporarily ignoring a specific
signal.

This patch introduce a scoped_restore_signal type that can be used for
both.  This will become more important for the next patch which
changes how the signal-ignoring is implemented.

scoped_restore_sigpipe is a straight alias to
scoped_restore_signal<SIGPIPE> on systems that define SIGPIPE, and an
alias to scoped_restore_signal_nop (a no-op version of
scoped_restore_signal) otherwise.

scoped_restore_sigttou is not a straight alias because it wants to
check the job_control global.

gdb/ChangeLog:
yyyy-mm-dd  Pedro Alves  <pedro@palves.net>

* gdbsupport/scoped_ignore_signal.h: New.
* compile/compile.c: Include gdbsupport/scoped_ignore_signal.h
instead of <signal.h>.  Don't include <unistd.h>.
(scoped_ignore_sigpipe): Remove.
* gdbsupport/scoped_ignore_sigttou.h: Include gdbsupport/scoped_ignore_signal.h
instead of <signal.h>.  Don't include <unistd.h>.
(lazy_init): New.
(scoped_ignore_sigttou): Reimplement using scoped_ignore_signal
and lazy_init.

Change-Id: Ibb44d0bd705e96df03ef0787c77358a4a7b7086c
gdb/ChangeLog
gdb/compile/compile.c
gdbsupport/scoped_ignore_signal.h [new file with mode: 0644]
gdbsupport/scoped_ignore_sigttou.h