【SylixOS之進程資源回收機制】

      SylixOS在正常消亡時會回收與此進程所佔用的相關資源,包括打開的文件fd、事件、事件組、posix命名信號量、定時器、RMS等。相關代碼見libsylixos/SylixOS/kernel/resource/resourceLib.c:__resPidReclaim()。

      此函數通過遍歷對應的資源緩衝數組,搜索是否存在此進程PID佔用的資源,如果存在則回收此資源。比如回收定時器資源會遍歷數組_G_reshTimerBuffer[],若發現佔用情況,調用API_TimerDelete()刪除資源,如下圖所示。

       資源緩衝數組中的數據則是在資源創建時通過調用資源創建回調函數(LW_OPTION_OBJECT_CREATE_HOOK)被添加的。

      例如在API_TimerCreate()中會在函數最後調用資源添加回調函數,如圖:

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章