コード例 #1
0
ファイル: win32select.c プロジェクト: plusxutianyou/Libevent
int
win32_add(struct event_base *base, evutil_socket_t fd,
			 short old, short events, void *_idx)
{
	struct win32op *win32op = base->evbase;
	struct idx_info *idx = _idx;

	if ((events & EV_SIGNAL) && win32op->signals_are_broken)
		return (-1);

	if (!(events & (EV_READ|EV_WRITE)))
		return (0);

	if (events & EV_READ) {
		if (do_fd_set(win32op, idx, fd, 1)<0)
			return (-1);
	}
	if (events & EV_WRITE) {
		if (do_fd_set(win32op, idx, fd, 0)<0)
			return (-1);
	}
	return (0);
}
コード例 #2
0
int
win32_add(struct event_base *base, evutil_socket_t fd,
			 short old, short events, void *idx_)
{
	struct win32op *win32op = base->evbase;
	struct idx_info *idx = idx_;

	if ((events & EV_SIGNAL) && win32op->signals_are_broken)
		return (-1);

	if (!(events & (EV_READ|EV_WRITE)))
		return (0);

	event_debug(("%s: adding event for %d", __func__, (int)fd));
	if (events & EV_READ) {
		if (do_fd_set(win32op, idx, fd, 1)<0)
			return (-1);
	}
	if (events & EV_WRITE) {
		if (do_fd_set(win32op, idx, fd, 0)<0)
			return (-1);
	}
	return (0);
}