[libevent]_evsignal_restore_handler()

来源:互联网 发布:java 请求webservice 编辑:程序博客网 时间:2024/06/08 04:23
int_evsignal_restore_handler(struct event_base *base, int evsignal){int ret = 0;struct evsignal_info *sig = &base->sig;#ifdef HAVE_SIGACTIONstruct sigaction *sh;#elseev_sighandler_t *sh;#endif/* restore previous handler */sh = sig->sh_old[evsignal];//获得之前信号注册的回调函数指针sig->sh_old[evsignal] = NULL;#ifdef HAVE_SIGACTIONif (sigaction(evsignal, sh, NULL) == -1) {event_warn("sigaction");ret = -1;}#elseif (signal(evsignal, *sh) == SIG_ERR) {//重新注册之前的回调函数event_warn("signal");ret = -1;}#endiffree(sh);return ret;}

0 0
原创粉丝点击