測驗 ϵ - 1
解釋上述程式碼運作原理:
在主程式中,我們可以看到有四個進入點,分別是將 memory pool 做初始化的 mpool_init()、配空間的 mpool_alloc、將空間歸還 memory pool 的 mpool_repool、以及釋放整個 memory pool 的 mpool_free。
程式運作的核心概念是根據配置大小對 pool 做分類,在每一個類別 (pool) 中用 array 來區隔每個可配置區、然後用 linked-list 將配置出來 array 中每個元素串成 free list 做配置及釋放(repool)的管理。
struct mpool
typedef struct {
int cnt; /* actual pool count */