关键词搜索

源码搜索 ×
×

漫话Redis源码之一

发布2021-11-21浏览1838次

详情内容

今天看了下redis源码,记录一下ztrymalloc_usable

  1. /* Try allocating memory, and return NULL if failed.
  2. * '*usable' is set to the usable size if non NULL. */
  3. void *ztrymalloc_usable(size_t size, size_t *usable) {
  4. ASSERT_NO_SIZE_OVERFLOW(size);
  5. void *ptr = malloc(MALLOC_MIN_SIZE(size)+PREFIX_SIZE);
  6. if (!ptr) return NULL;
  7. #ifdef HAVE_MALLOC_SIZE
  8. size = zmalloc_size(ptr);
  9. update_zmalloc_stat_alloc(size);
  10. if (usable) *usable = size;
  11. return ptr;
  12. #else
  13. *((size_t*)ptr) = size;
  14. update_zmalloc_stat_alloc(size+PREFIX_SIZE);
  15. if (usable) *usable = size;
  16. return (char*)ptr+PREFIX_SIZE;
  17. #endif
  18. }

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载