diff options
author | Bart Schaefer <schaefer@zsh.org> | 2013-04-28 17:47:43 -0700 |
---|---|---|
committer | Bart Schaefer <schaefer@zsh.org> | 2013-04-30 00:08:49 -0700 |
commit | d19e18c68d6415214afad37ce6cb47ec038ebe1c (patch) | |
tree | c325d0ca0440246d07b758c25a20d6c5f49356b4 /Src/signals.h | |
parent | cbf6f144a942a3db27025e68357b9fd8ca442ed8 (diff) | |
download | zsh-d19e18c68d6415214afad37ce6cb47ec038ebe1c.tar.gz zsh-d19e18c68d6415214afad37ce6cb47ec038ebe1c.tar.xz zsh-d19e18c68d6415214afad37ce6cb47ec038ebe1c.zip |
31350: block SIGWINCH nearly all the time, except
when about to calculate prompts or do synchronous read, so syscalls are not interrupted by window size changes.
Diffstat (limited to 'Src/signals.h')
-rw-r--r-- | Src/signals.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Src/signals.h b/Src/signals.h index 9541a1a02..d68096891 100644 --- a/Src/signals.h +++ b/Src/signals.h @@ -59,6 +59,14 @@ #define child_block() signal_block(sigchld_mask) #define child_unblock() signal_unblock(sigchld_mask) +#ifdef SIGWINCH +# define winch_block() signal_block(signal_mask(SIGWINCH)) +# define winch_unblock() signal_unblock(signal_mask(SIGWINCH)) +#else +# define winch_block() 0 +# define winch_unblock() 0 +#endif + /* ignore a signal */ #define signal_ignore(S) signal(S, SIG_IGN) |