static void
evsignal_handler(int sig)
{
int save_errno = errno;
if (evsignal_base == NULL) {
event_warn(
"%s: received signal %d, but have no base configured",
__func__, sig);
return;
}
evsignal_base->sig.evsigcaught[sig]++;//在信号触发了该函数后,记录该信号的触发次数
evsignal_base->sig.evsignal_caught = 1;//标识有信号触发
#ifndef HAVE_SIGACTION
signal(sig, evsignal_handler);//重新注册该信号
#endif
/* Wake up our notification mechanism */
send(evsignal_base->sig.ev_signal_pair[0], "a", 1, 0);//写,触发读事件
errno = save_errno;
}
[libevent]evsignal_handler()
最新推荐文章于 2022-10-18 22:11:40 发布