TinyWebserver中定时器的具体运行工作过程

TinyWebserver中定时器的具体运行工作过程文章主要内容定时器节点类和定时器链表类具体执行过程参考文章主要内容在阅读TinyWebserver源码过程中,对于定时器部分具体运行工作过程进行了梳理。需要结合源码观看本篇文章,希望对阅读定时器部分却思路很混乱的同学以帮助。定时器节点类和定时器链表类节点类和链表类的具体结构和作用具体执行过程(1) 首先使用socketpair创建管道。(2) 设置写端为非阻塞,是为了减少信号处理的时间,即使定时事件失效也没关系,并不严格。(3) 设置读端
摘要由CSDN通过智能技术生成

TinyWebserver中定时器的具体运行工作过程

文章主要内容

在阅读TinyWebserver源码过程中,对于定时器部分具体运行工作过程进行了梳理。需要结合源码观看本篇文章,希望对阅读定时器部分却思路很混乱的同学以帮助。

定时器节点类和定时器链表类

节点类和链表类的具体结构和作用
在这里插入图片描述

具体执行过程

(1) 首先使用socketpair创建管道。
(2) 设置写端为非阻塞,是为了减少信号处理的时间,即使定时事件失效也没关系,并不严格。
(3) 设置读端为ET非阻塞,向epoll树上挂读管道事件。
(4) 执行信号函数addsig,把信号添加到信号集当中,并把信号默认处理方式改成sig_handler函数(函数内容是向管道写入信号值)
(5) 设置bool值timeout和stop_server,后面需要使用他们判断是否执行信号对应的处理逻辑。
(6) 开始alarm函数,设定时间。
(7) 监听文件描述符epoll_wait。
(8) 监听到以后读出信号。
(9) 执行处理逻辑,如果信号是SIGALRM,timeout=true;如果是SIGTERM(ctrl+c)stop_server=true;
(10&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值