con_ready_io(void *ctx) {
    agooCon	c = (agooCon)ctx;

    if (NULL != c->bind && !c->dead && 0 != c->sock) {
	switch (c->bind->events(c)) {
	case POLLIN:		return AGOO_READY_IN;
	case POLLOUT:		return AGOO_READY_OUT;
	case POLLIN | POLLOUT:	return AGOO_READY_BOTH;
	default:		break;
	}
    }
    return AGOO_READY_NONE;
}
con_ready_io(void *ctx) {
    agooCon	c = (agooCon)ctx;

    if (NULL != c->bind && !c->dead && 0 != c->sock) {
	switch (c->bind->events(c)) {
	case POLLIN:		return AGOO_READY_IN;
	case POLLOUT:		return AGOO_READY_OUT;
	case POLLIN | POLLOUT:	return AGOO_READY_BOTH;
	default:		break;
	}
    }
    return AGOO_READY_NONE;
}