对于没有垃圾自动回收机制的语言(如C/C++)来说,引用计数提供了一种简洁高效的内存管理方法,
nginx-rtmp模块为方便管理内存,在给ngx_chain_t分配内存的时候,多分配了sizeof(uint32_t)类型的字节数,用来方便管理内存
在ngx_rtmp_shared.c文件中
#define NGX_RTMP_REFCOUNT_TYPE uint32_t
#define NGX_RTMP_REFCOUNT_BYTES sizeof(NGX_RTMP_REFCOUNT_TYPE)
#define ngx_rtmp_ref(b) *((NGX_RTMP_REFCOUNT_TYPE*)(b) - 1)
#define ngx_rtmp_ref_set(b, v) ngx_rtmp_ref(b) = v
#define ngx_rtmp_ref_get(b) ++ngx_rtmp_ref(b)
#define