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數組
    在這裏插入圖片描述