diff options
| author | root <root> | 2007-11-03 09:19:58 +0000 | 
|---|---|---|
| committer | root <root> | 2007-11-03 09:19:58 +0000 | 
| commit | f123911c49df152e9b27ab4df77b12a03b6abfa2 (patch) | |
| tree | 0d76843ddd6b7896440174392f6d2ba7db924662 | |
| parent | 120eeba0bed6b77e91b32b8cd0fb875c314bc092 (diff) | |
add rpid/rstatus
| -rw-r--r-- | ev.c | 12 | ||||
| -rw-r--r-- | ev.h | 5 | ||||
| -rw-r--r-- | ev_select.c | 4 | ||||
| -rw-r--r-- | evdns.c | 1 | 
4 files changed, 17 insertions, 5 deletions
| @@ -44,7 +44,9 @@  #include <assert.h>  #include <errno.h>  #include <sys/types.h> -#include <sys/wait.h> +#ifndef WIN32 +# include <sys/wait.h> +#endif  #include <sys/time.h>  #include <time.h> @@ -440,12 +442,14 @@ sigcb (struct ev_io *iow, int revents)  static void  siginit (void)  { +#ifndef WIN32    fcntl (sigpipe [0], F_SETFD, FD_CLOEXEC);    fcntl (sigpipe [1], F_SETFD, FD_CLOEXEC);    /* rather than sort out wether we really need nb, set it */    fcntl (sigpipe [0], F_SETFL, O_NONBLOCK);    fcntl (sigpipe [1], F_SETFL, O_NONBLOCK); +#endif    ev_io_set (&sigev, sigpipe [0], EV_READ);    ev_io_start (&sigev); @@ -467,6 +471,8 @@ static int checkmax, checkcnt;  static struct ev_child *childs [PID_HASHSIZE];  static struct ev_signal childev; +#ifndef WIN32 +  #ifndef WCONTINUED  # define WCONTINUED 0  #endif @@ -486,6 +492,8 @@ childcb (struct ev_signal *sw, int revents)          }  } +#endif +  /*****************************************************************************/  #if EV_USE_KQUEUE @@ -566,8 +574,10 @@ int ev_init (int methods)            ev_watcher_init (&sigev, sigcb);            siginit (); +#ifndef WIN32            ev_signal_init (&childev, childcb, SIGCHLD);            ev_signal_start (&childev); +#endif          }      } @@ -172,8 +172,9 @@ struct ev_child  {    EV_WATCHER_LIST (ev_child); -  int pid;    /* ro */ -  int status; /* rw, holds the exit status, use the macros from sys/wait.h */ +  int pid;     /* ro */ +  int rpid;    /* rw, holds the received pid */ +  int rstatus; /* rw, holds the exit status, use the macros from sys/wait.h */  };  #define EVMETHOD_AUTO     0 /* consults environment */ diff --git a/ev_select.c b/ev_select.c index 0333d63..a0db3b6 100644 --- a/ev_select.c +++ b/ev_select.c @@ -35,7 +35,9 @@  #include <unistd.h>  /* for unix systems */ -#include <sys/select.h> +#ifndef WIN32 +# include <sys/select.h> +#endif  #include <string.h>  #include <inttypes.h> @@ -41,7 +41,6 @@  #endif  #ifdef WIN32 -#include "misc.h"  #endif  /* #define NDEBUG */ | 
