diff options
| author | root <root> | 2008-02-19 19:13:50 +0000 | 
|---|---|---|
| committer | root <root> | 2008-02-19 19:13:50 +0000 | 
| commit | d18db5d76a04a516a7ae0694522d3f6a46772f3b (patch) | |
| tree | 76112a6b0b92131e06b676221e5f8711d17c10a0 | |
| parent | 0c8e14659f11acebbf5d102234a3d9d0e94b00a3 (diff) | |
async events might shadow signal events and vice versa, fixed
| -rw-r--r-- | ev.c | 12 | 
1 files changed, 6 insertions, 6 deletions
| @@ -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;      }  } | 
