summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ev.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/ev.c b/ev.c
index 6d5f18a..2b3d476 100644
--- a/ev.c
+++ b/ev.c
@@ -819,15 +819,15 @@ evpipe_init (EV_P)
void inline_size
evpipe_write (EV_P_ int sig, int async)
{
- if (!(gotasync || gotsig))
- {
- int old_errno = errno; /* save errno becaue write might clobber it */
+ int sent = gotasync || gotsig;
- if (sig) gotsig = 1;
- if (async) gotasync = 1;
+ if (sig) gotsig = 1;
+ if (async) gotasync = 1;
+ if (!sent)
+ {
+ int old_errno = errno; /* save errno becaue write might clobber it */
write (evpipe [1], &old_errno, 1);
-
errno = old_errno;
}
}