evpipe
evpipe [0] = fds [0];
if (evpipe [1] < 0)
evpipe [1] = fds [1]; /* first call, set write fd */
dup2 (fds [1], evpipe [1]);
fd_intern (evpipe [1]);
ev_io_set (&pipe_w, evpipe [0] < 0 ? evpipe [1] : evpipe [0], EV_READ);
if (evpipe [0] < 0)
write (evpipe [1], &counter, sizeof (uint64_t));
WSASend (EV_FD_TO_WIN32_HANDLE (evpipe [1]), &buf, 1, &sent, 0, 0, 0);
write (evpipe [1], &(evpipe [1]), 1);
if (evpipe [0] < 0)
read (evpipe [1], &counter, sizeof (uint64_t));
WSARecv (EV_FD_TO_WIN32_HANDLE (evpipe [0]), &buf, 1, &recvd, &flags, 0, 0);
read (evpipe [0], &dummy, sizeof (dummy));
evpipe [0] = -1;
evpipe [1] = -1;
if (evpipe [0] >= 0) EV_WIN32_CLOSE_FD (evpipe [0]);
if (evpipe [1] >= 0) EV_WIN32_CLOSE_FD (evpipe [1]);
if (evpipe [0] >= 0)
EV_WIN32_CLOSE_FD (evpipe [0]);
VAR (evpipe, int evpipe [2])
#define evpipe ((loop)->evpipe)