Browse Source

fix solaris backend

master
Marc Alexander Lehmann 14 years ago
parent
commit
6ab1182404
  1. 38
      ev_port.c

38
ev_port.c

@ -36,22 +36,14 @@
#include <string.h>
#include <errno.h>
static void
port_modify (EV_P_ int fd, int oev, int nev)
void inline_speed
port_associate_and_check (EV_P_ int fd, int ev)
{
/* we need to reassociate no matter what, as closes are
* once more silently being discarded.
*/
if (!nev)
{
if (oev)
port_dissociate (backend_fd, PORT_SOURCE_FD, fd);
}
else if (0 >
if (0 >
port_associate (
backend_fd, PORT_SOURCE_FD, fd,
(nev & EV_READ ? POLLIN : 0)
| (nev & EV_WRITE ? POLLOUT : 0),
(ev & EV_READ ? POLLIN : 0)
| (ev & EV_WRITE ? POLLOUT : 0),
0
)
)
@ -60,7 +52,22 @@ port_modify (EV_P_ int fd, int oev, int nev)
fd_kill (EV_A_ fd);
else
syserr ("(libev) port_associate");
}
}
}
static void
port_modify (EV_P_ int fd, int oev, int nev)
{
/* we need to reassociate no matter what, as closes are
* once more silently being discarded.
*/
if (!nev)
{
if (oev)
port_dissociate (backend_fd, PORT_SOURCE_FD, fd);
}
else
port_associate_and_check (EV_A_ fd, nev);
}
static void
@ -95,8 +102,7 @@ port_poll (EV_P_ ev_tstamp timeout)
| (port_events [i].portev_events & (POLLIN | POLLERR | POLLHUP) ? EV_READ : 0)
);
anfds [fd].events = 0; /* event received == disassociated */
fd_change (EV_A_ fd); /* need to reify later */
port_associate_and_check (EV_A_ fd, anfds [fd].events);
}
}

Loading…
Cancel
Save