Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于void* MemoryPoolAlloc(MemoryPool* mp, mem_size_t wantsize)部分的逻辑疑问 #14

Open
Zhichao-Yan opened this issue Apr 9, 2024 · 0 comments

Comments

@Zhichao-Yan
Copy link

  1. 请问:mp->mempool_size代表的什么意思?是默认的一个标准内存池大小吗?
  2. 剩余可新增内存池大小不是应该等于mp->max_mempool_size - mp->alloc_mempool_size吗?
    if (mp->auto_extend) {
        // 超过总内存限制
        if (mp->alloc_mempool_size + total_needed_size > mp->max_mempool_size) {
            goto err_out;
        }
        // 问题1: 
        mem_size_t add_mem_sz = mp->max_mempool_size - mp->mempool_size;
        // 如果空间足够则按 mempool_size 新增, 不足则分配剩下所有内存
        add_mem_sz = add_mem_sz >= mp->mempool_size ? mp->mempool_size
                                                     : add_mem_sz;
        if (!extend_memory_list(mp, add_mem_sz)) goto err_out;
        // 更新实际分配内存
        mp->alloc_mempool_size += add_mem_sz;

        goto FIND_FREE_CHUNK;
    }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant