Example #1
0
//删除base中指定的信号,并且恢复之前的信号处理函数
static int
evsig_del(struct event_base *base, evutil_socket_t evsignal, short old, short events, void *p)
{
	EVUTIL_ASSERT(evsignal >= 0 && evsignal < NSIG);

	event_debug(("%s: "EV_SOCK_FMT": restoring signal handler",
		__func__, EV_SOCK_ARG(evsignal)));

	EVSIGBASE_LOCK();
	--evsig_base_n_signals_added;
	--base->sig.ev_n_signals_added;
	EVSIGBASE_UNLOCK();

	return (_evsig_restore_handler(base, (int)evsignal));
}
Example #2
0
int
win32_del(struct event_base *base, evutil_socket_t fd, short old, short events,
		  void *idx_)
{
	struct win32op *win32op = base->evbase;
	struct idx_info *idx = idx_;

	event_debug(("%s: Removing event for "EV_SOCK_FMT,
		__func__, EV_SOCK_ARG(fd)));
	if (events & EV_READ)
		do_fd_clear(base, win32op, idx, 1);
	if (events & EV_WRITE)
		do_fd_clear(base, win32op, idx, 0);

	return 0;
}