//删除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)); }
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; }