Skynet:timer线程

Skynet:timer线程

  • timer数据结构:skynet_timer.c
    在这里插入图片描述

  • 创建timer线程:create_thread(&pid[1], _timer, m)

  • 线程函数:更新skynet时钟,2.5毫秒更新一次
    在这里插入图片描述

  • 更新逻辑:skynet_timer.c
    在这里插入图片描述
    更新时间,计算diff的差值,更新current_point,调用timer_update执行真正的timer处理
    在这里插入图片描述

  • timer_execute触发定时器,向对应的服务发送消息,完成定时器的逻辑,定时器精确到10毫秒
    在这里插入图片描述

  • timer_shift调整timer node优先级
    在这里插入图片描述

  • 添加定时器:
    在这里插入图片描述
    最终调用到skynet_timer.c中的skynet_timeout函数
    在这里插入图片描述

  • 添加timer node:根据时间的大小,添加到near数组或level数组
    在这里插入图片描述