diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2020-04-14 06:17:21 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2020-04-14 06:17:21 -0700 |
commit | a506664be6f93a51152cb7c25fad1f9466ebc78c (patch) | |
tree | 77d7123e096fe41aaf01fe9aea6ba96e01b3cb48 /chksum.h | |
parent | 386d7143b677979e02392bb8750aea1da00fb687 (diff) | |
download | txr-a506664be6f93a51152cb7c25fad1f9466ebc78c.tar.gz txr-a506664be6f93a51152cb7c25fad1f9466ebc78c.tar.bz2 txr-a506664be6f93a51152cb7c25fad1f9466ebc78c.zip |
unwind: regression: signal mask restoring.
We have a regression introduced in TXR 230, as part of the
bugfix for the extended_setjmp crash caused by PIE
executables.
This bug (for instance) causes signal handling to misbehave
after TXR handles a single asynchronous signal. In the REPL,
if the user interrupts a (usleep ...) operation with Ctrl-C,
it is afterward not possible to issue any more Ctrl-C
interrupts, asynchronous or not. The reason is that an
asynchronous interrupt directly throws an exception out of
the signal handler. Then the botched restoring of the signal
mask in extjmp_restore will install the wrong signal mask,
causing the signal to be blocked.
* unwind.c (extjmp_restore): Remove stray statement that
clobbers the saved mask of blocked signals. This was
accidentally been copy-and-pasted from extjmp_save.
Diffstat (limited to 'chksum.h')
0 files changed, 0 insertions, 0 deletions