zoukankan      html  css  js  c++  java
  • memblock.c

    ■ struct pa_memblock *pa_memblock_new(size_t length)
    memblock分配,分配类型是PA_MEMBLOCK_APPENDED。
    pa_memblock 和 数据是连续分配的,由pa_memblock中data指向分配的数据区域。

    ■ struct pa_memblock *pa_memblock_new_fixed(void *d, size_t length)
    memblock分配,分配类型是PA_MEMBLOCK_FIXED。
    将pa_memblock中data指向传来的数据d。与dynamic的区别,还不太清楚(从代码看不负责销毁数据d)

    ■ struct pa_memblock *pa_memblock_new_dynamic(void *d, size_t length)
    memblock分配,分配类型是PA_MEMBLOCK_DYNAMIC。
    将pa_memblock中data指向传来的数据d,从pa_memblock_unref看,dynamic这种方式还负责销毁数据d。

    ■ struct pa_memblock* pa_memblock_ref(struct pa_memblock*b)
    引用计数增1

    ■ void pa_memblock_unref(struct pa_memblock*b)
    引用计数减1,如果为引用计数为0,对memblock分配的buffer的释放。
    PA_MEMBLOCK_APPENDED : memblock + data
    PA_MEMBLOCK_FIXED : memblock
    PA_MEMBLOCK_DYNAMIC: memblock + data (外部申请的)

    ■ void pa_memblock_unref_fixed(struct pa_memblock *b)
    PA_MEMBLOCK_FIXED类型的释放,引用计数为1时,等同于pa_memblock_unref。
    引用计数大于1时,类型由PA_MEMBLOCK_FIXED转为PA_MEMBLOCK_DYNAMIC。
    疑问用户不知道这个变化,下次使用哪个函数释放pa_memblock_unref还是pa_memblock_unref_fixed?

    ■ unsigned pa_memblock_get_count(void)
    返回memblock_count

    ■ unsigned pa_memblock_get_total(void)
    返回memblock_total

  • 相关阅读:
    MySQL与PostgreSQL对比
    Elastic Job3.0
    Nacos Config动态刷新值
    clickhouse数据类型
    字符串和整数之间的转换
    STL之优先队列 priority_queue
    c++智能指针
    springcloud gateway: discovery: locator: enabled: true 解释
    工具资源下载链接 webstorm
    技术链接汇总
  • 原文地址:https://www.cnblogs.com/renhl/p/12996643.html
Copyright © 2011-2022 走看看