From: Christian Brauner Date: Wed, 2 Sep 2020 07:28:12 +0000 (+0200) Subject: terminal: introduce lxc_terminal_signal_sigmask_safe_blocked() X-Git-Tag: lxc-5.0.0~360^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3e3f79bdcd9134dcc624d868b13f60712106ed6a;p=thirdparty%2Flxc.git terminal: introduce lxc_terminal_signal_sigmask_safe_blocked() Signed-off-by: Christian Brauner --- diff --git a/src/lxc/terminal.c b/src/lxc/terminal.c index 2a1925baf..0d9046469 100644 --- a/src/lxc/terminal.c +++ b/src/lxc/terminal.c @@ -147,6 +147,16 @@ struct lxc_terminal_state *lxc_terminal_signal_init(int srcfd, int dstfd) return move_ptr(ts); } +int lxc_terminal_signal_sigmask_safe_blocked(struct lxc_terminal *terminal) +{ + struct lxc_terminal_state *state = terminal->tty_state; + + if (!state) + return 0; + + return pthread_sigmask(SIG_SETMASK, &state->oldmask, NULL); +} + /** * lxc_terminal_signal_fini: uninstall signal handler * diff --git a/src/lxc/terminal.h b/src/lxc/terminal.h index 7d402a264..8bf2bda76 100644 --- a/src/lxc/terminal.h +++ b/src/lxc/terminal.h @@ -251,5 +251,6 @@ __hidden extern int lxc_terminal_prepare_login(int fd); __hidden extern void lxc_terminal_conf_free(struct lxc_terminal *terminal); __hidden extern void lxc_terminal_info_init(struct lxc_terminal_info *terminal); __hidden extern void lxc_terminal_init(struct lxc_terminal *terminal); +__hidden extern int lxc_terminal_signal_sigmask_safe_blocked(struct lxc_terminal *terminal); #endif /* __LXC_TERMINAL_H */