Unverified Commit 42fbf064 authored by menwen's avatar menwen Committed by GitHub
Browse files

Add module API RM_MallocUsableSize (#10795)

This allows the module to know the usable size of an allocation
it made, rather than the consumed size.
parent 805191c7
...@@ -9762,6 +9762,12 @@ size_t RM_MallocSize(void* ptr) { ...@@ -9762,6 +9762,12 @@ size_t RM_MallocSize(void* ptr) {
return zmalloc_size(ptr); return zmalloc_size(ptr);
} }
/* Similar to RM_MallocSize, the difference is that RM_MallocUsableSize
* returns the usable size of memory by the module. */
size_t RM_MallocUsableSize(void *ptr) {
return zmalloc_usable_size(ptr);
}
/* Same as RM_MallocSize, except it works on RedisModuleString pointers. /* Same as RM_MallocSize, except it works on RedisModuleString pointers.
*/ */
size_t RM_MallocSizeString(RedisModuleString* str) { size_t RM_MallocSizeString(RedisModuleString* str) {
...@@ -12566,6 +12572,7 @@ void moduleRegisterCoreAPI(void) { ...@@ -12566,6 +12572,7 @@ void moduleRegisterCoreAPI(void) {
REGISTER_API(GetBlockedClientReadyKey); REGISTER_API(GetBlockedClientReadyKey);
REGISTER_API(GetUsedMemoryRatio); REGISTER_API(GetUsedMemoryRatio);
REGISTER_API(MallocSize); REGISTER_API(MallocSize);
REGISTER_API(MallocUsableSize);
REGISTER_API(MallocSizeString); REGISTER_API(MallocSizeString);
REGISTER_API(MallocSizeDict); REGISTER_API(MallocSizeDict);
REGISTER_API(ScanCursorCreate); REGISTER_API(ScanCursorCreate);
......
...@@ -1161,6 +1161,7 @@ REDISMODULE_API int (*RedisModule_ExitFromChild)(int retcode) REDISMODULE_ATTR; ...@@ -1161,6 +1161,7 @@ REDISMODULE_API int (*RedisModule_ExitFromChild)(int retcode) REDISMODULE_ATTR;
REDISMODULE_API int (*RedisModule_KillForkChild)(int child_pid) REDISMODULE_ATTR; REDISMODULE_API int (*RedisModule_KillForkChild)(int child_pid) REDISMODULE_ATTR;
REDISMODULE_API float (*RedisModule_GetUsedMemoryRatio)() REDISMODULE_ATTR; REDISMODULE_API float (*RedisModule_GetUsedMemoryRatio)() REDISMODULE_ATTR;
REDISMODULE_API size_t (*RedisModule_MallocSize)(void* ptr) REDISMODULE_ATTR; REDISMODULE_API size_t (*RedisModule_MallocSize)(void* ptr) REDISMODULE_ATTR;
REDISMODULE_API size_t (*RedisModule_MallocUsableSize)(void *ptr) REDISMODULE_ATTR;
REDISMODULE_API size_t (*RedisModule_MallocSizeString)(RedisModuleString* str) REDISMODULE_ATTR; REDISMODULE_API size_t (*RedisModule_MallocSizeString)(RedisModuleString* str) REDISMODULE_ATTR;
REDISMODULE_API size_t (*RedisModule_MallocSizeDict)(RedisModuleDict* dict) REDISMODULE_ATTR; REDISMODULE_API size_t (*RedisModule_MallocSizeDict)(RedisModuleDict* dict) REDISMODULE_ATTR;
REDISMODULE_API RedisModuleUser * (*RedisModule_CreateModuleUser)(const char *name) REDISMODULE_ATTR; REDISMODULE_API RedisModuleUser * (*RedisModule_CreateModuleUser)(const char *name) REDISMODULE_ATTR;
...@@ -1494,6 +1495,7 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int ...@@ -1494,6 +1495,7 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
REDISMODULE_GET_API(KillForkChild); REDISMODULE_GET_API(KillForkChild);
REDISMODULE_GET_API(GetUsedMemoryRatio); REDISMODULE_GET_API(GetUsedMemoryRatio);
REDISMODULE_GET_API(MallocSize); REDISMODULE_GET_API(MallocSize);
REDISMODULE_GET_API(MallocUsableSize);
REDISMODULE_GET_API(MallocSizeString); REDISMODULE_GET_API(MallocSizeString);
REDISMODULE_GET_API(MallocSizeDict); REDISMODULE_GET_API(MallocSizeDict);
REDISMODULE_GET_API(CreateModuleUser); REDISMODULE_GET_API(CreateModuleUser);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment