mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
Save and restore errno in the signal handler.
* libguile/scmsigs.c (take_signal): Save and restore errno.
This commit is contained in:
parent
91ba73b397
commit
03de93dd5f
1 changed files with 2 additions and 0 deletions
|
@ -129,12 +129,14 @@ static int signal_pipe[2];
|
|||
static SIGRETTYPE
|
||||
take_signal (int signum)
|
||||
{
|
||||
int old_errno = errno;
|
||||
char sigbyte = signum;
|
||||
full_write (signal_pipe[1], &sigbyte, 1);
|
||||
|
||||
#ifndef HAVE_SIGACTION
|
||||
signal (signum, take_signal);
|
||||
#endif
|
||||
errno = old_errno;
|
||||
}
|
||||
|
||||
struct signal_pipe_data
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue