diff options
| -rw-r--r-- | ev.c | 8 | 
1 files changed, 4 insertions, 4 deletions
| @@ -325,14 +325,14 @@ downheap (WT *timers, int N, int k)  typedef struct  {    struct ev_signal *head; -  sig_atomic_t gotsig; +  sig_atomic_t volatile gotsig;  } ANSIG;  static ANSIG *signals;  static int signalmax;  static int sigpipe [2]; -static sig_atomic_t gotsig; +static sig_atomic_t volatile gotsig;  static struct ev_io sigev;  static void @@ -355,7 +355,7 @@ sighandler (int signum)    if (!gotsig)      {        gotsig = 1; -      write (sigpipe [1], &gotsig, 1); +      write (sigpipe [1], &signum, 1);      }  } @@ -365,8 +365,8 @@ sigcb (struct ev_io *iow, int revents)    struct ev_signal *w;    int sig; -  gotsig = 0;    read (sigpipe [0], &revents, 1); +  gotsig = 0;    for (sig = signalmax; sig--; )      if (signals [sig].gotsig) | 
